7-6安全な表示処理Tips462 クロスサイトスクリプティング(XSS)に対処する
Level2
Pointhtmlspecialchars()命令で出力文字列をエスケープする
HTMLとして特別な意味を持つ文字をエスケープすることが、クロスサイトスクリプティングの対策になります。
PHPではhtmlspecialchars関数が用意されていますので、下記のように出力します。
<?php echo htmlspecialchars($_GET["mail"], ENT_QUOTES, "UTF-8" ) ?>
第1引数はエスケープしたい文字列、第2引数はモードを表す定数、第3引数は文字コードです。第2引数はENT_QUOTESを指定してください。表1に変換対象の文字を記します。
また、SQLインジェクション対策と同様に、XSSにおいてもShift_JISやEUC_JPの文字コードの特性を利用した攻撃が可能です。極力、Webアプリケーション全体をUTF-8で統一してください。
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録