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