php嵌套 frame,终极解决禁止网站被别人通过iframe引用嵌套套入。
今天介紹四種防iframe的方法。
方法一:JavaScript
JavaScript
if(self != top) { top.location = self.location; }
1
2
3
if(self!=top){top.location=self.location;}
JavaScript
if (self == top) {
var theBody = document.getElementsByTagName('body')[0];
theBody.style.display = "block";
} else {
top.location = self.location;
}
1
2
3
4
5
6if(self==top){
vartheBody=document.getElementsByTagName('body')[0];
theBody.style.display="block";
}else{
top.location=self.location;
}
上面兩段代碼都是可以的,原理就是先判斷網站是否被嵌套。如果被嵌套,則將瀏覽器重定向到被嵌套的網站。
把上面的JavaScript代碼片段放到你頁面的 head 中即可。
要特別說明下這種方法不是很靠譜,可以很輕松使這種方法失效。只需要添加下面代碼使JavaScript代碼失效,這種方法就沒用了。
JavaScript
document.write('');
//把里面的https://ihongchao.com換成要嵌套的網址
1
2
3
document.write('');
//把里面的https://ihongchao.com換成要嵌套的網址
在介紹第二種方法之前,先介紹一下網站的“X-FRAME-OPTIONS”屬性,看名字就能知道,該屬性是嵌套選項。分別有三種選擇:
DENY:表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。
SAMEORIGIN:表示該頁面可以在相同域名頁面的 frame 中展示。
ALLOW-FROM uri:表示該頁面可以在指定來源的 frame 中展示。
1
2
3DENY:表示該頁面不允許在frame中展示,即便是在相同域名的頁面中嵌套也不允許。
SAMEORIGIN:表示該頁面可以在相同域名頁面的frame中展示。
ALLOW-FROMuri:表示該頁面可以在指定來源的frame中展示。
方法二:meta標簽
在需要禁用iframe嵌套的網頁head中添加下面代碼
XHTML
1
以上兩種為前端處理方法,就我個人來說不推薦使用,不過這個也是因人而異的,沒有絕對的好與差。
方法三:編程語言
以PHP為例,在PHP代碼中添加如下代碼,即可防止網站被iframe嵌套。
PHP
1<?phpheader (‘X-Frame-Options:Deny');?>
方法四:服務器配置
下面分別說明Apache、NGINX和IIS中如何配置,來防止網站被嵌套。原理與方法三相同,即發送消息頭告知瀏覽器本網站不想被嵌套。
首先是Apache。在Apache的配置文件的“site”中添加如下配置,即可。
Header always append X-Frame-Options SAMEORIGIN
1HeaderalwaysappendX-Frame-OptionsSAMEORIGIN
虛擬機由于無法修改配置文件,可以將如下代碼加入網站根目錄的“.htaccess”文件中,效果相同。
Header append X-FRAME-OPTIONS "SAMEORIGIN"
1HeaderappendX-FRAME-OPTIONS"SAMEORIGIN"
目前勢頭正旺的NGINX可以在配置文件的http、server或者location中加入如下代碼,來防止被嵌套。
add_header X-Frame-Options "SAMEORIGIN";
1add_headerX-Frame-Options"SAMEORIGIN";
在IIS中,可以將網站根目錄的web.config配置文件做如下修改,來禁止網站被嵌套。
XHTML
...
...
1
2
3
4
5
6
7
8
9
...
...
如此這般之后,你的網站就不會被第三方網站嵌套了。
總結
以上是生活随笔為你收集整理的php嵌套 frame,终极解决禁止网站被别人通过iframe引用嵌套套入。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 获取请求,php获取http请求
- 下一篇: php怎样解析数组,PHP 数组 Arr