簡體   English   中英

防止iframe更改父位置

[英]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將自身加載到新窗口,或破壞其對topparent對象的訪問是可以接受的。 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解決方案可以工作。

優點:

  • 可以更改或刪除任何腳本
  • 可以調整b.com內容(預覽模式)
  • 可以繞過跨域iframe限制

缺點:

  • b.com上的cookies / sessions將無法使用
  • b.com可能需要腳本來創建其內容
  • 帶寬負擔
  • 編寫努力使href工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM