/
最近
.rdf
追記
編集
設定
本棚
翌日へ
前日へ
脳log
[20130517]
2013年05月17日 (金)
「
機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記
」■単純に GETで取得できる JSONに機密情報と呼べるものが存在しうるのかという疑問。ブコメを見ると COOKIEにひもついた情報でありうるとのこと。なるほどね。■XHRでのアクセスと SCRIPTタグでのアクセスの間に異なる制限が課されていたりして、その制限を乗り越える手段になるというのが問題の中心なのかなと思った。■JSONPだとここで書かれた方法を使うまでもなく、自分の HTMLページの自分のスクリプトから、閲覧者の User-Agentが SCRIPTタグに従って他所のドメインから取得してきた情報(JSONP方式で JSONデータを受け渡す JavaScript)にアクセスできたりして、機密にあたる情報を含めることがそもそも不可能だったりするんだろうか。■X-Content-Type-Options: nosniffという HTTPヘッダを初めて知ったんだけど、今回の件とは存在の目的が異なるという気がする。もともとはサーバーレスポンスを無視して IEがコンテンツの中身によって解釈を変える(これをたぶん sniffingという)のをやめさせるためのものだろう。画像ファイルを装う攻撃の例が挙がってるけど UTF-7関連も同じだと思う(追記:ちょっとだけ違うかな。ソースが同じ葉っぱ日記だったのだけど、あちらは IEが理解できる charsetを指定してる限り無視はされないらしい)。で、この nosniffオプションが sniffingの禁止だけでなく HTTPヘッダと HTML内指定(METAタグ, SCRIPTタグ)の優先順位を決めるためにも使われるって?その結果は標準や現実準拠? HTML4では文字コードとスクリプト・CSSそれぞれに一定の(だが異なる)優先順位が与えられてるらしいけど。■世の HTMLは遍く IEの挙動に依存しているから、IEに例外的な動作を期待する少数派の諸君は須く X-Content-Type-Options: nosniff ヘッダを出力したまえってことなのね。新しい IEは標準や潜在する危険を解するけれどそのレスポンスヘッダを見たときしか挙動を改めたりはしないよ、と(※このへん嘘なので(現実はなお悪い)バージョンを含む正確な情報は元記事にあたること)。MSの姿勢は一貫していて潔いなあ。■スクエニのブラウザゲームに JSONを通して成長パラメータがだだ漏れだというミス(仕様)があると少し前に話題になったが、あれは第三者に対してどころか一対一のクライアントに対しても秘密にしておけるとでも思っていたんだろうか。■IEに限らず多かれ少なかれコンテンツスニッフィングは行われてるみたい。Firefox然り、Google Chrome然り。そりゃあ人情として、ルールに従って馬鹿のふりをするよりユーザーの手助けをしようとするでしょうね。IEのは人間による明らかな指定を無視する傲慢で論外な挙動だけど。動機や条件が何であれ、それが外部スクリプトの実行につながりさえしなければいいのだろうか。そう単純でもないのだろうか。■■■@2013-05-20 こちらも有名どころ。「
JSONをvbscriptとして読み込ませるJSONハイジャック(CVE-2013-1297)に注意 | 徳丸浩の日記
」■■■@2013-07-20 これを読むと IEと Fx,GCへの印象が変わるなあ。「
Heads up: nosniff header support coming to Chrome and Firefox · GitHub
」IEにつづいて Fxと GCも nosniffに対応するから、GitHubがホストするファイルの "raw"ビューURLを SCRIPTタグの SRCに指定しても、サーバーが text/plainだと主張する限りブラウザはスクリプトとして実行しなくなるよ、ってさ。これも釈然としない nosniffの使い方だ。ブラウザはもともと sniffingを行っていたのではなくて、参照した側と参照された側のどちらの言うことを尊重するかという違いでしかないからだ。
翌日へ
前日へ