2016-11-29 5 views
0

これまでのところ私の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".

答えて

0

ネヴァーマインドは...ただ、問題を引き起こしているものを見つけました。

1)については、ポリシーは192.168.1.2を指し示す必要があります。

約2)私のラップトップだったので、2)は動作していなかった、私はlocalhostにブラウザを指していた。 Apacheを127.0.0.1の代わりに192.168.1.2で実行するように変更した後、Apacheは動作しました。

関連する問題