2

データベースからユーザー プロファイルを読み取り、表示します。それらを表示する前に、php htmlentities を介して HTML サニタイズを使用します。それらを正しく表示します。ただし、ユーザーが編集できるようにしながら、二重にフィルター処理されたように表示されます。

echo '<input id="about" name="about" value="'.$php_filtered_value>.'">';

次に、入力内のアンパサンドは次のよう&amp; になります。変数をフィルター処理しないと、html インジェクションが心配されます。

私は何をすべきか?

4

2 に答える 2

0

その場合、テキストを二重にエスケープしないでください (たとえば、データベースに保存する前に 1 回、エコーする前にもう一度)。

  • エスケープなし (入力したもの):Able & Baker
  • 一度エスケープ(DBに格納されているもの):Able &amp; Baker
  • 二重エスケープ(HTML で何が終わるか):Able &amp;amp; Baker

むしろ、テキストを 1 回だけエスケープします。通常は、入力側ではなく出力側で行います。

于 2013-07-13T20:52:06.763 に答える