如題,我的網站內容被別人用 iframe 嵌套在自己的網站裡了,有沒有辦法屏蔽不讓他嵌套呢?
還有個比較好的方法:
在回應頭裡加上一個X-Frame-Options
取值有三種,大部分瀏覽器都支援:
DENY:瀏覽器拒絕目前頁面載入任何Frame頁面
SAMEORIGIN:frame頁面的位址只能為同源網域下的頁面
ALLOW-FROM origin:origin為允許frame載入的頁面位址
這樣被不同來源的頁面以iframe包含時就不會顯示了
寫腳本
if (window != window.top) { window.top.location.replace(window.location) // 这是直接代替外窗,你也可以干别的 }
if (window != window.top) { window.top.location.replace(window.location) //加弹窗代码 干死他们 还赚钱 }
新浪微博是這麼做的
if (top != self) { top.location = self.location; }
基本上可以抵擋大多數iframe嵌套了。
還有看看人家是怎麼利用iframe嵌套實施攻擊的,就知道怎麼防禦了
目前最好的js的防禦方案為:
if (self == top) { var theBody = document.getElementsByTagName('body')[0]; theBody.style.display = "block"; } else { top.location = self.location; }
添加過濾腳本。原理是當偵測到目前的url連結不是自己的時候,讓src指向空白位址。具體代碼請google。
以上是如何避免網頁被人嵌套在 iframe 裡?的詳細內容。更多資訊請關注PHP中文網其他相關文章!