水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > JSデータのクロスドメイン参照

JSデータのクロスドメイン参照

2006年12月22日(金曜日)

JSデータのクロスドメイン参照

Web2.0時代のAjax Binary Hacks (labs.cybozu.co.jp)」。興味深いお話ですね。

スライドに書かれていますが、クロスドメインでデータをやりとりすること自体は難しいことではありません。script要素src属性には外部のドメインを指定することができるので、任意のデータを含む js ファイルを動的に生成すればあっさり通信できます。そこに着目したのが JSONP で、外部 .js として実行できる形式にすることによって script要素で参照できるようになり、ドメインを超えられるようになったというわけです。

※ふつう、JSON だと XMLHttpRequest を使うのでクロスドメイン参照できません。

※ちなみに、Opera では JSONP による非同期通信がうまくできなかったりするという問題があったりもするようです。

ときどき「JavaScriptはクロスドメインで参照できない」と思っている人がいるようなのですが、それはおそらく XMLHttpRequest の制限と混同しているのだと思います。要注意なのは、JS ファイルは悪意あるサイトからでも普通に読めてしまうということです。つまり、機微な情報を含むような JS ファイルを動的に生成するのはとても危険だということです。

大昔、某所のチャットのサービスは Java Applet で動いていたのですが、わざわざユーザのセッション情報などを含む JS ファイルを動的生成して、その JS から applet要素param要素を生成していました。そういう作りをしていると、ログイン状態で罠サイトを踏んだときに、セッション情報を含むデータを読まれてしまうことがあり得ます。このような作りはとても危険です。

関連する話題: Web / セキュリティ

最近の日記

関わった本など