UTF-7エンコードの特性を利用したクロスサイト・スクリプティング(UTF-7 XSS)を紹介します。この攻撃はブラウザが出力をUTF-7として認識した場合に生じるものです。日本ではUTF-7は一般的ではありません。しかし、プログラマはこういった文字コードとXSSの関係を把握しておくべきでしょう。 まずは、ブラウザが出力をUTF-7と解釈した場合にJavaScriptが実行されてしまうことを確認しましょう。次のコードをUTF-8等の文字コードで保存し、ブラウザから開いて下さい。 <?php mb_internal_encoding('UTF-8'); $str = "<script>alert('XSS');</script>"; $str = mb_convert_encoding($str, 'UTF-7'); header("Content-Type: text/html; char