2017-05-12 18 views
1

Jqueryで数百のコントロールが動的に作成されるアプリケーションを作成しています。サーバサイドのjqueryで動的に作成されたコントロールを検証するには -

var $link='<a id="bucket'+data[0].ID+'" class="Initial" href="#"></i></a>'; 
    $($btnGroupdiv).append($link); 

コントロールを追加する際に、各コントロールに一意のIDを割り当てます。

これは、アクセスする際に各コントロールを識別する方法です。

$(".Initial").click(function(){ 

var $pid=this.id.replace("bucket",""); 

しかし、ここに問題があります。

これらのIDは、ブラウザで[要素の検査]オプションを使用して変更できます。

サーバサイド状況Iは、コントロールに割り当てた

IDは、従業員と呼ばれるテーブル内の行の主キーです。

ブラウザでIDを変更すると、意図した以外の行でデータを調整することができます。

IDが変更された場合、またはサーバー側で要素の元のIDを復元する方法は、サーバー側でこれらのコントロールを検証するにはどうすればよいですか?

私の質問がはっきりしていることを願っています。

ヘルプは評価されています。

これは不可能だと思う誰もが私は尋ねるだろう - どのようにFacebookやStckOverflowはそれを行うのですか?

答えて

0

あなたはそれが動的な要素で動作するため、異なるそれを定義する必要があります。

$(document).on("click", ".Initial", function(){ 
    var $pid=this.id.replace("bucket",""); 
    ... 
}); 

誰もがブラウザ経由でIDを変更したかどうかを検出することは不可能です。

+0

これは、サーバー側の検証でどのように役立ちますか? –

+0

FacebookやSOはどうしていますか? –

0

(ソフトウェアルールn°1:決してユーザー入力を信頼しない)できません。あなたはサーバーサイドを検証することができますどのような

は次のとおりです。

  • idは
  • は、ユーザーがIDに関連するデータに対してアクションを実行する権限を持っていることを確認してください存在することを確認してください。

これはそれです!ユーザーがアクションを行っている場合、有効なデータで、なぜ彼は停止する必要がありますか?

+0

ユーザーは許可されていますが、デザインの目的を変更します。それは私の唯一の懸念です。 –

+0

これは、HTTPリクエストの問題です。投稿されたすべてのデータが有効である限り、どのようなアクションがクライアント側で発生したのかを実際に知る方法はありません – alpadev

+0

FacebookやStackoverflowでどのようにしているのですか?実際にIDを確認していて、IDを変更して送信しても元の状態に戻ってから –