![](/img/trans.png)
[英]Block iframe from setting parent.location (prevent framebusting)
[英]prevent iframe from changing parent location
假設http://a.com/foo包含<iframe src="http://b.com/bar">
有時b.com/bar會突破其框架:頂級窗口將從aff重定向到b.com/bar。 我不知道b.com是如何做到這一點的。
我認為跨域iframe不可能干擾父級,除非父級通過postMessage進行合作。 是否正在更改窗口位置?
如果發生了這種情況,a.com如何阻止這種重定向? 我控制a.com但無法修改b.com。
如果這不是正在發生的事情,我怎樣才能找出b.com正在做什么來實現重定向?
強制b.com將自身加載到新窗口,或破壞其對top
或parent
對象的訪問是可以接受的。 b.com行為的其他降級可能是可以接受的。
父可以在iframe
上使用sandbox
屬性:
http://www.w3schools.com/TAgs/att_iframe_sandbox.asp
然后iframe
將無法再重定向父級。
可能發生的事情是b.com中的鏈接具有屬性Target ='_ parent'。 這將使window / iframe父更新。
如果您控制b.com - 確保您的所有目標都是_self。
這被稱為“框架破壞”。 據說有技術可以阻止這種情況( http://seclab.stanford.edu/websec/framebusting/index.php )。
也許你可以使用ajax或者類似的方式將框架的內容加載到你的頁面中而不是iframe?
如果我創建一個將使用cURL來獲取b.com的a.com/proxy.php
,那么ajax解決方案可以工作。
優點:
缺點:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.