WEB

[PHP]htmlspecialcharsでサニタイズ。入力時/出力時/その中間どのタイミング?

PHP勉強/初心者

XSS(クロスサイトスクリプティング)対策など、htmlspecialchars()を使用してサニタイズを行うにあたって最適なタイミングは?

考えられるタイミングとしては、「入力時/出力時/その中間」の3つが考えられます。

出力時以外のタイミングでhtmlspecialchars()を使ってサニタイズした場合、htmlspecialchars_decode()等でサニタイズ前の文字列に戻して表示しなければならなくなり、余計な手間が増えてしまうことや、エスケープ忘れや多重エスケープといったミスを防ぐ意図もある。

PR

サニタイズとは

サニタイジングとは、テキストデータ上の「&」や「>」など特殊文字を一般的な文字列に変換する処理のことである。サニタイジング(sanitizing)はもともと「消毒する」「無害化する」などの意味を持つ英語である。

サニタイジングは、主にHTMLやJavaScriptなどでWebサイトの表示や機能を記述するために用いられる特殊文字を、単純な文字として扱いたい場合に行われる。

サニタイズとは – IT用語辞典 Weblio辞書

htmlspecialchars

htmlspecialchars — 特殊文字を HTML エンティティに変換する

参考:
PHP: htmlspecialchars – Manual
php – 脆弱性対策におけるhtmlspecialchars()の使用箇所について – スタック・オーバーフロー

この記事をシェアする

前の記事
次の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この記事と関連性の高い記事