XSS(クロスサイトスクリプティング)対策など、htmlspecialchars()
を使用してサニタイズを行うにあたって最適なタイミングは?
考えられるタイミングとしては、「入力時/出力時/その中間」の3つが考えられます。
出力時以外のタイミングでhtmlspecialchars()
を使ってサニタイズした場合、htmlspecialchars_decode()
等でサニタイズ前の文字列に戻して表示しなければならなくなり、余計な手間が増えてしまうことや、エスケープ忘れや多重エスケープといったミスを防ぐ意図もある。
PR
サニタイジングとは、テキストデータ上の「&」や「>」など特殊文字を一般的な文字列に変換する処理のことである。サニタイジング(sanitizing)はもともと「消毒する」「無害化する」などの意味を持つ英語である。
サニタイジングは、主にHTMLやJavaScriptなどでWebサイトの表示や機能を記述するために用いられる特殊文字を、単純な文字として扱いたい場合に行われる。
htmlspecialchars — 特殊文字を HTML エンティティに変換する
参考:
PHP: htmlspecialchars – Manual
php – 脆弱性対策におけるhtmlspecialchars()の使用箇所について – スタック・オーバーフロー
コメント