PHPでhtmlentities()のような関数を使用して、ユーザの入力をサイトに表示するときにユーザ入力をサニタイズすると便利です。しかし、このような何かがXSSのリスクを提示するでしょうか?テキスト化されていないユーザー入力をテキスト入力に入れてしまうXSSリスクはありますか?
<input type="text" value="<?=user input drawn from the database?>" />
このような入力をサニタイズする方が良いでしょうか?
<input type="text" value="<?=htmlentities(user input drawn from the database)?>" />
私は唯一の入力値属性のセキュリティ上のリスクについて話して、私は、サイト上の他の場所にそれを表示したい場合、私はまだユーザー入力をサニタイズする必要があります知っていることを指定する必要があります。
エンコーディングを 'htmlentities'に指定しないと、危険性があります。 (なぜ誰も 'htmlspecialchars'の代わりに' htmlentites'を使うのですか?) –
'<?php print htmlspecialchars($ string、ENT_QUOTES、 'UTF-8'); ?> htmlspecialchars($ string) 'と' htmlentities($ string) 'はユニコードの可能性を示します。 – Xeoncross