3

私は自分のサイトを調べて、セキュリティ監査を行っています。私はすべてのユーザー入力をサニタイズする必要があるという事実を単純に受け入れましたが、実際に何が起こっているのかを実際に止めて実験したことはありません. 今、実験を始めています。

PHP ページに典型的なお問い合わせフォームがあります。_POSTデータ化です。$_POST["first_name"];

$firstName = htmlspecialchars($_POST["first_name"]);以下のようなメッセージをサニタイズして表示するためにこれを行います。

echo $firstName . ', thank you for your interest. We'll be in touch soon!'

<script>alert('hello')</script>私はこれをいじり始めました。名のフィールドなどに何かを入力すると、htmlspecialcharsそれは仕事であり、タグを隠します。

htmlspecialcharsスクリプトを削除すると、変換されず、ソースに表示されますが、<script>alert('hello')</script>実行されません。

私の質問は、なぜこれが実行されないのですか? これは基本的に XSS 攻撃が行うことではないでしょうか? 私は何か誤解していますか?

4

1 に答える 1

5

Chrome でこれを試したところ、コンソールに次のエラーが表示されました。

JavaScript スクリプトの実行を拒否しました。リクエスト内で見つかったスクリプトのソース コード。

そのため、最新のブラウザーがこのチェックを行ってそれを防止している可能性があります。もちろん、入力のサニタイズは継続する必要がありますが、コンソールを確認すると、おそらくこれが表示されるでしょう。

于 2012-08-01T22:49:09.167 に答える