- ベストアンサー
iframe内で表示されてるサイトのURLを取得できないのはなぜ?
iframe内のリンクをたどる等をして表示されたサイト(srcで指定した 以外のサイト)のURLは、iframeが埋め込まれているサイトと iframe内で表示されてるサイトのドメインが一致しない限り、javascript では取得できないのはなぜですか?取得されると何か困ることがあるので しょうか? またjavascript以外なら何らかの方法で取得することは可能なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>操作は出来なくとも取得はできてもよい >ような気がしますが・・ URLが取得できれば、操作(URLを開く)は簡単です。 ----------------------------------------------------------- >iframeのURLを取得しても悪用する手立てが >いまいちよくわかりません(^^; WEBの仕組みを熟知していないと難しい内容です。 私自身もそれほど詳しい訳ではないので、 説明が難しいのですが・・・(^^; ----------------------------------------------------------- 簡単な例を挙げてみます。 説明に使う用語は、下記の「原理」を見て下さい。 http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA 例えば、Aさんがmixiの会員で、自動ログインを利用していたとします。 Aさんが、攻撃者のWEBぺージを開いてしまった。 攻撃者のWEBページではiframeがあり、そこでmixiを開く。 (このiframeは気づかれない様に隠してある) mixi側は、Aさんがアクセスしてきたので、自動ログインの処理をし、 Aさんのマイページを開きます。 例えば、マイページの「プロフィール確認」と言うリンクのURLは 下記の様にになっています。 https://mixi.jp/show_profile.pl?id=******* URLの最後に、idの情報が付加されています。 このURLが攻撃者のWEBサイトで取得できれば、 AさんのIDが攻撃者に知られます。 ----------------------------------------------------------- iframeを仕掛けているのは攻撃者ですが、 開いているのは、Aさんのブラウザです。 Cookieは、Aさんの物が使われます。 mixi側は、AさんのCookieを利用し、 Aさんの個人情報を返してしまうのです。 mixiでは、過去に騒動があったので、 現在は何らかの対策がしてあると思いますが、 危機管理の甘いサイトなら、今でも簡単に 個人情報が返ってくるかも知れません。 上記の例は簡単な例ですが、頭のいい人ならもっとすごい 利用(悪用)方法を思いつくでしょう。 ----------------------------------------------------------- Aさんが開いた、攻撃者のWEBページ内のiframeで、 mixiのページが表示されていたとします。 この情報は、Aさんとmixiの間のやり取りなので、 他者(攻撃者)には一切知られない方が良いのです。 (知らせる必要がないですし) つまり、別ドメインの情報は取得出来ない、 そういう方向で、ブラウザは作られていると思います。 もし、何らかの方法で取得できたとしても、 それはセキュリティホールになるので、 そのうち埋められると思います。 ----------------------------------------------------------- うまく説明出来たか分かりませんが、 私もこれ以上は説明できませんので、悪しからず。(^^; hfodfpow9さんがそのURLを何に利用したいのか? 説明がないので、見えてきませんね。 (推測ですが、自分自身で利用するページでしょうか?) もう少し具体的に何がしたいのかを説明して頂ければ、 別の解決方法が見付かるかも知れませんよ。 (その場合は、新規の質問の方が良いかな・・・)
その他の回答 (1)
- venzou
- ベストアンサー率71% (311/435)
>iframe内で表示されてるサイトのドメインが一致しない限り、javascript >では取得できないのはなぜですか?取得されると何か困ることがあるので >しょうか? 残念ながら、世の中には悪いことを考える人がいまして、 下記のような不正行為に、利用される恐れがあります。 XSS(クロスサイトスクリプティング) http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0 CSRF(クロスサイトリクエストフォージェリ) http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA iframeに直接関係している訳ではないですが、 iframeで別ドメインの情報が自由に操作できれば、 上記の様な不正行為がとても簡単になり、非常に危険です。 ----------------------------------------------------------- >またjavascript以外なら何らかの方法で取得することは可能なのでしょうか? セキュリティ上の理由で、その他の方法でも難しいと思います。
お礼
回答ありがとうございます。iframeのURLを取得しても悪用する手立てが いまいちよくわかりません(^^; 操作は出来なくとも取得はできてもよい ような気がしますが・・
お礼
度々の回答ありがとうございます。URLは想像以上に様々な情報を 含んでいるのですね。悪用する仕組みがよくわかりました(^^; 私がやりたいと思ったことは、iframe内でyoutubeやニコニコ動画など を表示させてiframe外に動画をダウンロードできるボタンを設置するという 感じのものです。動画のURLさえ取得できれば完成するのですが。