8

さまざまなサイトで、ページ ソースにフォームの非表示の値が表示されることがよくあります (通常、何らかの定数、キー、ID などを保持しています)。何かのようなもの:

<input type="hidden" name="_submit_check" value="1">

この Web サイトは、_submit_checks の値が 1 であることを確認して、フォームが投稿されたことを二重にチェックしていると思います。ソースを編集してそれを 0 に変更し、データを投稿して、フォームがサーバー側に投稿されないようにすることは可能でしょうか?

この例は、単にリクエストを無視するため、サーバーにとってそれほど危険ではありませんが、非表示フィールドを使用することでセキュリティ上のリスクが生じる可能性はありますか (明らかなこと以外に、それらはソースの値を読み取ることができます。私はもっと心配しています)編集できる場合)。

4

5 に答える 5

11

はい、ユーザーは HTML フォームをコピーし、値を変更してからサーバーに投稿できます。これが、クライアント側 (つまり JavaScript) だけでなく、サーバー側の非表示の入力値を含むユーザー入力を常に検証およびサニタイズすることが重要である理由です。

于 2012-09-13T15:38:52.437 に答える
3

はい、編集できます。現在、Chrome や Firefox などのブラウザーに Web 開発ツールが統合されているため、値を簡単に変更できます。そのため、 user から受信したデータを信頼すべきではありません

于 2012-09-13T15:39:04.447 に答える
2

はい、できます。Firebug/IE Developer Tools/etc を使用している場合は、ページ上のあらゆるものを編集して、そのデータを含むフォームを送信できます。任意の js を実行して、そのように編集することもできます。これは、サーバー側ですべての入力を検証してから何かを行う必要がある主な理由の 1 つです。

于 2012-09-13T15:39:49.797 に答える
1

はい、これは可能です。開発者/デバッグ ツールが組み込まれた、または拡張機能として最新のブラウザーを使用すると、フォームを編集するためにフォームを保存する必要さえありません。これが、データをフォーム送信として信頼してはならず、常に検証してサニタイズするべきではない理由です。

于 2012-09-13T15:41:38.940 に答える