JavaScript Hijacking
なんかスラドにあがってたので何だそりゃと思って元ネタのPDFをナナメ読みしたんですが、要するに
最近のAjaxアプリの内部でよく使われるような、GETでJSONを返すようなAPIがあると、そのデータを(Cookieで保護されてる場合でさえ)よそのドメインに横取りされることがあるよ。
なんでかというと、
- scriptタグを使うと、他のドメインのJavaScriptを読み込んで評価することができる。*1
- っていっても{"a": 1, "b": 2}とか評価したところで何も起きないでしょ?
- いやいやJavaScriptは、なんかごにょごにょしておくと、上のようなコードを評価しただけで色々起きる(データを自前の関数に横流しするとか)ようにできるのよ*2。
で、対策としては例えばAPIが返すJSON全体を/* */でコメントアウトしておいて、
とかそんな感じ。
という話みたいです。話自体はどっかで聞いたことがあるな…。
てかスラドのこのコメントにリンクすればいいだけだったような気がしてきました。まあ書いちゃったので、置いておきます。