2015-10-30 131 views
25

有人iframing我的網站,使用繞過iframe沙箱?

<iframe src="http://example.org" sandbox=""></iframe> 

這樣,沙箱屬性防止我的網站使用iframe攔截器就可以了。它可以很容易地被肢解。

在我的網站框架解讀:

if (window.top !== window.self) window.top.location.replace(window.self.location.href); 

有重定向到我的網站在與沙箱屬性使用時,它被一個iFrame使用編程方式

+0

除了其他選項,你可以考慮['X框-Options' HTTP響應頭(HTTPS: //developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options)。 – Palpatim

+0

關於iframe和framekillers的更多信息[Wiki](https://en.wikipedia.org/wiki/Framekiller),[iFrame Attribute - html5&Security](https://www.tinfoilsecurity.com/blog/protect你的網站從嵌入式內容iframe安全) – yjs

回答

16

Iframing可以通過X-Frame-Options響應標頭得到保護,無論是設置X-Frame-Optionsvalue="DENY"X-Frame-Optionsvalue="SAMEORIGIN"。通過此響應標題設置,您可以保護您的網站免受IFraming或clickjack攻擊。

一旦設置了X-Frame-Options響應標題,瀏覽器會收到標準消息,如「此內容無法顯示在一幀中」。

+0

有了那個,它不會顯示我的網頁正確?但是,當我粗體顯示文本時,我希望它重定向到我的頁面。 – user198989

+0

一旦X-Frame-Options響應頭設置爲「拒絕」或「sameorigin」,瀏覽器就不會收到任何正確的html或腳本,因此通過腳本無法重定向。 –

10

sandbox屬性關閉所有的javascript,等等。這就是爲什麼你的框架破壞者不會工作,也沒有任何其他的JavaScript人提供。沙箱的

W3說:

  • 腳本是不允許的iframe中/禁用
  • 鏈接到其他瀏覽上下文是不允許的iframe中/禁用

的測試表明,屬性還會禁用元重定向和任何標準鏈接,這些鏈接會突破iframe。

有了這個嚴格性,如果重定向是可能的,我會非常驚訝,因爲那樣會打敗沙盒的重點。

我可以建議的最好的方法是使用noscript標記向用戶在沙盒iframe中查看頁面顯示消息。你可以設計風格,讓人們看不到你的內容。

(如果它只是一個網站是一個問題,然後用htaccess的阻止他們可能會是一個更好的方法)

+0

另一個人與sandbox =「allow-scripts」一起使用,所以說我們可以運行javascript。什麼可能是重定向到主要的iframed網站的最佳方法? – user198989

+0

他們需要allow-top-navigation才能工作。 Allow-scripts也不允許離開iframe。 –

+0

如果還添加了,那麼重定向的方法是什麼? – user198989

2

我認爲你能做的最好的事情是顯示自己的消息與target="top"鏈接。沙盒屬性的整個概念是禁止重定向。沒有辦法繞過它,如果你發現一個瀏覽器製造商可能會找到一種方法來阻止它。這顯然是他們的意圖。

這就是網絡的工作原理。當談到瀏覽器時,你無法做任何你想做的事情。

0

@ SudiptaKumarMaiti的答案X-Frame-Options有效,但正在被內容安全政策(CSP)2級 - 特別是frame-ancestorsdirective取代。

要禁止取景完全(類似於X-Frame-Options: DENY),使用HTTP標頭:

Content-Security-Policy: frame-ancestors 'none';