2008-11-08

クロスドメインの必要性がいまいちよく分からない

クロスドメインの何たるかを学ぶためにググっても、如何にしてクロスドメインを回避するかということについては腐るほど情報があっても、なぜクロスドメインが必要なのかという情報はまったく見つからない。とりあえずこんな解釈でよかろうか。

script要素やimg要素は、javascriptや画像ファイルへのURLを指定できる。しかし、その指定されたURLのサーバは、別にjavascriptや画像を返すとは限らない。

たとえば、mixiはIDとパスワードによるログインをして、初めて利用可能になる。一度ログインしたら、cookieによって、再度ログインする必要はなくなる。もしここで、scriptやimgなどで指定されているURLが、http://mixi.jp/home.plであったとする。そのURLにアクセスするのは、所詮ユーザの使っているブラウザなので、もしユーザがmixiを使っていて、すでにログインしている場合、mixi.jpはログインしなければ得られない情報を返してくる。もしJavaScriptやFlashが、制限なく他のドメインのURLにアクセスできるならば、これはセキュリティ上の問題である。そこで、FlashやSilverLightなどは、クロスドメインのポリシーを記述したXMLファイルにアクセスすることを取り決め、またaccess-controlという、統一した規格も策定され始めている。

でも、imgがクロスドメイン可能で、具体的にどういうセキュリティ上の問題があるのだろう。指定されたURLが、画像でないログインが必要な情報を返したとしても、それをクライアント側から調べる方法があるのだろうか。画像に問題がなければ、動画や音声にも問題はないと思うのだが。それとも、やはりimg要素もクロスドメインであったほうがいい理由があるのだろうか。現状でも、ピクセルデータにはアクセスできないわけだし、何の問題があるのだろうか。

No comments: