IE6/7のでは「;」で区切ってURLが複数指定できる問題
Masato Kinugawaさんのブログ「Masato Kinugawa Security Blog: Googleのmetaリダイレクトに存在した問題」を読んで、
<meta http-equiv="refresh" content="0;url=http://good/;url=http://evil/">
みたいな書き方をするとIE6、IE7ではevilなほうにリダイレクトされるということを初めて知ったわけですけど、それをTwitter上で言ったら
<meta http-equiv="refresh" content="0;url=http://good/;url=http://evil/">
みたいに書いても、「;url=」みたいな文字列が出現してしまって、やっぱりevilにリダイレクトされてしまう。なので、本気でオープンリダイレクタをつぶそうと思うと
<meta http-equiv="refresh" content="0;url='http://good/;url=http://evil/'">
のように記述する必要があるわけで、なかなかバッドノウハウ色の強いおもしろい事象だったのでちょっと感動して久々に日記を書いてしまいました。
(追記)
そもそもリダイレクト先に「'」が含まれているのでこれを ' みたいにエスケープしてると
<meta http-equiv="refresh" content="0;url='http://good/;'url=http://evil/'">
みたいになって、やっぱりevilにリダイレクトされちゃう。なにこれひどい。