クロスドメインでのリソース読み込みのあれこれメモ。

xn—p8jlq5ah3jqh3b:

クロスドメインで何らかのテキストを読み込む方法

  • <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内の機密情報を攻撃者は奪取可能。いまのところ、そういうブラウザの致命的なバグが見つかっていない(見つかる都度修正されてる)という、わりと危ういバランスの上に成り立っている。

Prev