nginx、apache、iis、.htaccess增加X-Frame-Options配置禁止iframe嵌套防止别人镜像自己的网站
防止网页被Frame,方法有很多种;
由于嵌入iframe的嵌入 使得网站变的更不安全, 如何能防止网页禁止被iframe嵌入呢?
首先看下知名网站使用的方法
这个是淘宝使用的方法
if(window.top !== window.self){ window.top.location = window.location;}
有时候站长不希望自己网页页面被其他站的FRAME嵌套进去, 这时候就需要的HTTP协议头里增加X-Frame-Options这一项。
X-Frame-Options的值有三个:
(1)DENY --- 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
(2)SAMEORIGIN --- 表示该页面可以在相同域名页面的 frame 中展示。
(3)ALLOW-FROM https://example.com/ --- 表示该页面可以在指定来源的 frame 中展示。
下面是重点:
NGINX配置X-Frame-Options响应头的方法
把下面这行添加到nginx的站点配置文件中,加到'http', 'server' 或者 'location' 的配置中均可。
add_header X-Frame-Options SAMEORIGIN;
方法一:常见的比如使用js,判断顶层窗口跳转
js 代码:
(function () { if (window != window.top) { window.top.location.replace(window.location); //或者干别的事情 }})();
一般这样够用了,但是有一次发现失效了,看了一下人家网站就是顶层窗口中的代码,发现这段代码:
js 代码:
var location = document.location;// 或者 var location = "";
轻轻松松被破解了,悲剧。
注:此方式破解对IE6,IE7,IE9+、Chrome、firefox无效; 感谢@genify和@_Franky?补充斧正。
方法二:meta 标签:基本没什么效果,所以也放弃了
html 代码:
<meta http-equiv="Windows-Target" contect="_top">
方法三:使用HTTP 响应头信息中的 X-Frame-Options属性
使用 X-Frame-Options 有三个可选的值:
DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
ALLOW-FROM:origin为允许frame加载的页面地址
绝大部分浏览器支持:
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari
Basic support 4.1.249.1042 3.6.9 (1.9.2.9) 8.0 10.5 4.0
禁止网站被别人通过iframe引用嵌套具体的设置方法
Apache配置
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中
Header always append X-Frame-Options SAMEORIGIN
nginx配置
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中
add_header X-Frame-Options SAMEORIGIN;
IIS配置
添加下面的配置到 Web.config 文件中
<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
.htaccess方法
在网站根目录下的.htaccess文件中中加一句
Header append X-FRAME-OPTIONS "SAMEORIGIN"
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包