PHP逆引き大全 516の極意

セキュアプログラミングの極意 - Tips462 クロスサイトスクリプティング(XSS)に対処する

登録タグ
PHP
Icon comment count 0
Icon stock count 0

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で統一してください。

表1 htmlspecialcharsの変換表(ENT_QUOTES指定時)

出典情報

Medium

PHP逆引き大全 516の極意

  • 著者: 大家 正登, 茂木 健一, 鮫島 康浩, 谷中 志織

コメント

    コメントはありません