これまでのところ私のWebサーバーは常にX-Frame-Options "sameorigin"
ヘッダーを設定していましたが、問題はありませんでした。しかし、今は別のサーバーでiframeを使用する必要がありましたが、驚いたことに、allow-from
はChromeとSafariで廃止されましたので、X-Frame-Options
は使用できません。コンテンツセキュリティポリシーのフレーム先祖の範囲を理解する
したがって、ヘッダーをCSPに切り替えていますが、問題が発生しています。
XA(192.168.1.1)とXB(192.168.1.2)という2つのサーバーを想定します。 XAはいくつかのチャートを持つページを提供しており、XBはそれらのチャートの1つにiframeを持つページを提供しています。
XAでは、次のヘッダ:Header set Content-Security-Policy "frame-ancestors 'self' 192.168.1.1"
を使用します。ただし、XBのサイトにアクセスすると、iframeのコンテンツはCSPポリシーに違反して読み込まれません。
だから、私は2つの質問があります:方向がポリシー作業を行い
1)ここでは?? XA→XBまたはXA < -XB?言い換えれば、192.168.1.1が正しいのですか、代わりに192.168.1.2を使用する必要がありますか?両方を試しても動作しませんでしたが、どちらが正しいかを知るだけです。
2)ポリシー違反エラーが発生する理由は何ですか?
テスト目的では、XAとXBの両方が簡単なHTMLに対応しています。
XA
<html>
<body>
lalala
</body>
</html>
XB私はXB訪問
<html>
<body>
<iframe src="http://192.168.1.1"/>
</body>
</html>
ブラウザのコンソールエラー:Refused to display 'http://192.168.1.1/' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' http://192.168.1.1".