クロスドメインで何らかのテキストを読み込む方法
- <iframe src=”target”> <frame src=”target”>
- <script src=”target”>
- <link rel=”stylesheet” type=”text/css” href=”target” >
- <object data=”target”> <embed src=”target”>
- XmlHttpRequest Level 2, XDomainRequest
ほかにもありそう。
クロスドメインでのリソースの読み込みに対して影響を与えるHTTPレスポンスヘッダ
- Content-Security-Policy
HTMLに対して指定可能。読み込み可能なリソースの出自を指定可能。XSSを防ぐ。- X-Frame-Options
あらゆるリソースに対して指定可能。iframe,frame,object,applet,embedによる読み込みを拒否。- Access-Control-Allow-Origin
あらゆるリソースに対して指定可能。XHR Lv.2、XDRに対する読み込みを拒否。まとめ
攻撃の対象となるHTMLページを、攻撃者の用意した罠ページからJavaScriptあるいはCSSとして読み込まれるのを防ぐ手段はないので、HTMLをJSあるいはCSSとして読み込むことに成功すれば、HTML内の機密情報を攻撃者は奪取可能。いまのところ、そういうブラウザの致命的なバグが見つかっていない(見つかる都度修正されてる)という、わりと危ういバランスの上に成り立っている。