はじめに
- PHPにはエルケープ処理をする関数がたくさん存在する。その中でもよく使う関数をまとめた。
いろいろな関数
htmlspecialchars
雛形
htmlspecialchars(string, flags, encoding)
引数
string
- 変換される文字列。
flags
- クォートや無効な符号単位シーケンス、文字型の扱いを指定する。デフォルトは
ENT_QUOTES
で、シングルクォートとダブルクォートを共に変換する。
encoding
- オプションの引数。文字を変換するときに使うエンコーディングを定義する。
機能
- 特殊文字を HTML エンティティに変換する。
- HTMLエンティティとは、アンパサンド(&)で始まりセミコロン(;)で終わる記号を表示するHTMLの命令を表す文字のことである。たとえばコピーライトの記号「©」を表示させるHTMLエンティティは「©」である。
例
- 入力
echo htmlspecialchars(<script>alert('XSS');</script>)
- 出力
<script>alert('XSS');</script>
htmlentities
雛形
htmlentities(string, flags, encoding)
引数
- htmlspecialcharsと同じ。
機能
- 特殊文字だけでなく、特殊記号もHTMLエンティティに変換する。
例
- 入力
echo htmlentities(<script>alert('XSS');</script>)
- 出力
<script>alert('XSS');</script>
strip_tags
雛形
strip_tags(string, allowed_tags)
引数
string
- 入力文字列。
allowed_tags
- 取り除かないタグを指定する。
機能
- 文字列からHTMLおよびPHPタグを取り除く
例
- 入力
echo strip_tags(<script>alert('XSS');</script>)
- 出力
alert('XSS');