到目前爲止,我的網絡服務器始終設置X-Frame-Options "sameorigin"
標題,我沒有任何問題。但是,現在我需要在其他服務器上使用iframe,但令我驚訝的是,Chrome和Safari已棄用allow-from
,因此無法使用X-Frame-Options
。瞭解內容安全策略框架的範圍 - 祖先
所以,我將我的標題切換到CSP,但我遇到了一些問題。
假設兩臺服務器,XA(192.168.1.1)和XB(192.168.1.2)。 XA正在用一些圖表提供一個頁面,而XB正在爲其中一個圖表提供一個帶有iframe的頁面。
在XA中,我使用以下標題:Header set Content-Security-Policy "frame-ancestors 'self' 192.168.1.1"
。但是,當我訪問XB的網站時,iframe的內容不會被加載,因爲它違反了CSP策略。
所以,我有兩個問題:
1)在哪個方向的政策工作? XA - > XB或XA < - XB?換句話說,192.168.1.1是正確還是應該使用192.168.1.2?試了兩次,但都沒有奏效,只是想知道哪一個是正確的。
2)什麼可能是得到違反政策的錯誤的原因?
出於測試目的,XA和XB都只是提供簡單的HTML,沒什麼奇特的。
XA
<html>
<body>
lalala
</body>
</html>
XB
<html>
<body>
<iframe src="http://192.168.1.1"/>
</body>
</html>
當我訪問XB瀏覽器的控制檯錯誤: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".