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
![36. UTF-7とクロスサイト・スクリプティング](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)