phpでのクロスサイトスクリプティング回避

HTMLで危険とされる5つの文字(&,< ,>,”,’)をエスケープすることでSCRPITタグなどを無効化(サニタイジング)することで、基本的にHTMLに出力するときに行います。

※サニタイズに関して・・・参考「PHP PRO
※PEARのDBクラスを用いる事で、使用するDBMSの種類に依存しないサニタイズが可能です。

htmlspecialchars関数やmb_ereg_replace関数を使うことで、ほとんどのクロスサイトスクリプティングは回避できる。
「’」の無害化はオプションである。なので、「”」で囲む。
(タグの属性値を「’」で括っている場合、htmlspecialchars() の第2引数に ENT_QUOTES を記入。)

※htmlspecialchars()・・・特殊文字をHTMLエンティティに変換(’&’ (アンパサンド) は ‘&’ )

タグの部分を削除したい場合は strip_tags()

HTMLに出力箇所でサニタイズを行う。

参考サイト
DoYouPHP?
はてなダイアリーXSS対策とは

phpセキュリティ