以下の理由が悪いので、いくつかのxssの脆弱性を防ぐためにhtmlspecialcharsを使用する必要があることがわかります。
<?php $url = '<plaintext>';
echo $url;?>
そのようです:
<?php $url = '<plaintext>';
htmlspecialchars($url, ENT_QUOTES, "UTF-8");
echo $url;?>
私のデータベースには、ユーザーが提供したファイル名のみを保存します。(私がこの主題についてもっと学ぶにつれて、これは変わると確信しています)
しかし、不思議に思うのは、これが実際にXSSから保護するために何かをしているのかどうかです。前のケースに比べて脆弱性は少ないですか?
htmlspecialcharsを使用して、または使用せずにスクリプトタグを挿入しようとしましたが、どちらの場合も何も実行されないようです。スクリプトコードは実行されません。
安全ですか?htmlspecialcharsはその仕事に適したツールですか?どうすればそれを改善できますか?
$ sql ['image']は私のデータベースから取得され、以下は画像を表示するコードです。
<?php $url = "/images/" . $sql['image'] . ".jpg";
$url = htmlspecialchars($url, ENT_QUOTES, "UTF-8");?>
<img src="<?php echo $url;?>">
出力:
<img src="/images/test.jpg">