2

firebug を使用して onClick 関数をテストしているときに、渡される引数の値をユーザーが簡単に変更できることに気付きました。これは、シンスを台無しにする可能性があります。

特に引数を渡す必要がある場合に、これを防ぐ簡単な方法はありますか?

4

5 に答える 5

4

クライアントから送信されたものは信頼できません。ユーザーがURL引数を手動で編集したり、スクリプトキディがブラウザをまったく使用していなくてもリクエストを送信したりする可能性があります。サーバー側ですべてを検証する必要があります。

于 2012-05-03T12:15:33.833 に答える
4

それは無理だ。コードはユーザーのコンピューターで実行されています。彼らはコントロールしています。

彼らがそれを編集して「台無しにする」場合、それは彼らの頭の中にあります。

彼らがそれを編集してHTTPリクエストをサーバーに送信し、サーバーが(たとえば)そのリクエストで別のユーザーに属するデータを削除することを許可している場合、サーバーがリクエストを送信したユーザーに許可があることを確認しなかったことが問題です続行する前にそのデータを削除します。

于 2012-05-03T12:13:04.883 に答える
3

いいえ、これは単純にできません。

スクリプトがクライアントのマシンにロードされたら。彼は好きなようにそれを使用/変更できます。

于 2012-05-03T12:15:02.897 に答える
1

結果が処理される場所 (クライアント/サーバー) に関係なく、予想される値のセットやビジネス ルールに対して引数を検証することをお勧めします。理想的には、ユーザーが制御できないサーバーで検証チェックが行われます。クライアント側の検証は、無効なデータ入力を許可するように変更することもできます.

完全に制御する方法はありません。基準に基づいて検証するだけです。

于 2012-05-03T12:14:18.347 に答える
0

JavaScript はクライアント側であるため、このアクションを防ぐことはできません。また、クライアントを信頼することはできません。

クライアントの不正使用からデータを保護するために、サーバー側ですべてのリクエストに対して検証を行う必要があります。


.delegate() を使用して、クライアントの目から隠すことができます

元。

$("table").delegate( "td","click", function() {<br>
  // write here your function<br>
}); 


クライアントはこのスクリプトを実行できますが、目の前では実行できません..

于 2012-05-03T12:46:11.183 に答える