0

ユーザーがページ上のJavaScriptを編集できるかどうか疑問に思いました。

たとえば、JavaScriptの送信ボタンイベントハンドラーに次のような条件がある場合:

if (!txtName.match(/^[\w ]+$/)) {
    alert("Please use only letters, numbers, underscores and spaces in your name.");
    return;
}

サーバー上の名前も検証する必要がありますか、それとも不適切な名前をサーバーに送信できないと信頼できますか?基本的に、この種のチェックをバイパスするためにユーザーがJavaScriptを操作できますか?

そうでない場合、パケットインジェクションを使用して無効な名前を送信できますか?私はセキュリティについてあまり知らないので、この種の問題に興味がありました。

4

3 に答える 3

3

サーバー上の名前も検証する必要がありますか

はい

または、不適切な名前をサーバーに送信できないことを信頼できますか?

いいえ

基本的に、この種のチェックをバイパスするためにユーザーがJavaScriptを操作できますか?

操作された。

オフにしました。

検証に関しては、セキュリティではなく、ユーザーの時間を節約するためにのみ使用できます(ただし、サーバーのラウンドトリップは回避できます)。

パケットインジェクションを使用して無効な名前を送信できますか?

はい。

ただし、HTTPリクエストを手動で作成する方がはるかに簡単です。

于 2012-06-09T22:05:46.887 に答える
1

サーバー側の検証も実行する必要があります。ご指摘のとおり、情報を注入する方法はたくさんあります。1つは、Javascriptをオフにするだけです。または、ネットワーク要求を傍受して変更することもできます。

クライアント側は、サーバー側の検証を補足するためにのみ使用する必要があり、置き換えるものではありません。

于 2012-06-09T22:04:31.133 に答える
0

常にサーバー側で検証します。サーバーに投稿されたデータを信頼してはいけません。重大なセキュリティリスクにつながる可能性があります。

于 2012-06-09T22:04:21.853 に答える