X-Frame-Optionsヘッダーがない場合でも、特定のWebページがiframe化されない理由を見つけようとしています。
観察:
URLを指すiframeタグを使用してHTMLを記述し、このファイルをローカルに保存して開くと、ページがインフレームに読み込まれていることがわかります。しかし、同じURLを試してみると here で、iframeに読み込まれません。
では、X-Frame-Optionヘッダーの値をDENY/Same-Originに設定する以外に、ページがiframe化されるのを防ぐ他の方法はありますか?
これは会社固有のリンクなので、URLの貼り付けは控えますが、設定されているすべての応答ヘッダーを書き留めています。
HTTP/1.1 200 OK
キャッシュ制御:プライベート
Content-Type:text/html; charset = utf-8
Set-Cookie:ASP.NET_SessionId = value
X-OFIS:ある値
厳格な輸送セキュリティ:max-age = 31536000
X-UA-Compatible:IE = Edge
X-Content-Type-Options:nosniff
X-XSS-保護:1;モード=ブロック
Content-Security-Policy:default-src 'self' * .xyz.com
X-Content-Security-Policy:default-src 'self' * .xyz.com
Access-Control-Allow-Origin:*
日付:2017年5月13日土曜日17:38:04 GMT
接続:閉じる
コンテンツの長さ:33335
HTTPヘッダーContent-Security-Policy
を使用して、iframeにページが読み込まれないようにすることができます。
この場合、その値はdefault-src 'self' *.xyz.com
に設定されます。つまり、現在のドメインのみであり、*.xyz.com
はこのページをiframeに読み込むことができます。
そのHTTPヘッダーには、XSS攻撃からの保護などの他の用途があります。詳細については、 OWASPガイド を参照してください。