2016-11-18 9 views
1

この投稿はコード付きのissueよりもquestionです。だから、のようなAjaxのリクエスト、データベース、セキュリティ

<div id="1"></div> 
<div id="2"></div> 
<div id="3"></div> 
<div id="4"></div> 

: は、だから私はdatabaseから例えば項目のリストを表示しなければならなかった長い時間のために、私は、例えば、次のようにHTMLに直接(表中のprimary keyIdを表示するために使用しましたこの私が現在clicked項目のAjax要求をやってみたかったとき、私はちょうどこのようhtmlからattributeを取得するために持っていたので、それは簡単だった:

のみ閲覧後だ
$.ajax({ 
    url: '/api/Item/'+$(this).attr('id'), 
    type: 'GET', 
}) 
.done(function() { 
    console.log("success"); 
}) 
.fail(function() { 
    console.log("error"); 
}) 
.always(function() { 
    console.log("complete"); 
}); 

私が気づいたウェブサイトの多くはprimary key(Id)を直接HTMLに表示しています。しかし、どういうわけか彼らはまだajax要求をAPIIdクリックしてitemを使用して要求を行うことができます。だから私の質問は:どのように現在のクリックId私の要求を行うことができますどこでも表示せずに。私はどのようにこれらのウェブサイトがそれを行うことができますか?たぶんlistはで使用するserverになるでしょうか?しかし、それでも彼らはどのように彼らがIdをクリックして取得するために管理しているか説明していません。

これについてのご意見やご提案をお待ちしております。ウェブサイトの

例:https://www.toneden.io/ 接続右下のチャットはnetworkと、Webブラウザconsoleを参照してください。

+0

例がないと、実際にはどのウェブサイトが何をしているのか把握するのが本当に難しいですか? – Manikiran

+0

@Manikiran更新された質問をご覧ください(下部にはアカウントが必要です) – zaarr78

+0

送信されますが、javascriptが縮小されているため、簡単に把握することはできません。 – Manikiran

答えて

0

サーバーからの応答を取得するには、何かを要求する必要があります。この場合、私はprimary key anywareをHTML側に表示し、サーバーから結果を取得したくないと言っています。私の提案、In ph>プライマリキーの代わりに2進数を使用し、番号に変換してaccを使用することができます。要件へ。例: - decbin()とbindec()

0

idの表示に問題はありません。私はサーバのプッシュアップデートに応答してDOMを参照したいだけの場合、id="game_1281"のようなデータベースIDを追加しました。別のオプションは、次のようなデータ属性を使用することです:data-id="1281"。これにより、サーバーに送信する前に、乱雑な解析を行わずに値を取得することができます。

一意のIDの参照はセキュリティの問題ではありません。適切なサーバー側のチェックを行って、さまざまな制約と特権に基づいてそのユーザーに対して実行可能なアクションが確実に行われることを確認してください。

+0

しかし、HTMLでidを非表示にすることは可能です。要素を調べるとid属性を見ずにdivをクリックすることができます。 – zaarr78

関連する問題