我的网站经常被360漏洞检测提示“X-Frame-Options头未设置”,意思是网页可能被别人用iframe框架使用。事实上,我的网页已经通过js程序禁止被iframe框架嵌入使用了。不过,对于使用iis的网站来说,可以设置下iis,无需在网页里编写js代码,就能轻松实现网站的所有网页禁止被iframe框架嵌入使用。本文将给大家介绍iis如何设置禁止网页被iframe框架引用。
IIS6设置禁止网页被iframe框架引用
打开网站属性,切换到“HTTP头”标签,然后在“自定义 HTTP 头”里点击“添加”按钮。
在弹出窗口里,自定义 HTTP 头”输入 X-Frame-Options
,“自定义 HTTP 头值”输入 SAMEORIGIN
,点击“确定”按钮,就完成了设置。
IIS6设置禁止网页被iframe框架引用
这里解释一下 SAMEORIGIN
,它表示该页面可以在相同域名页面的 frame 中展示。
X-Frame-Options 有三个值:
DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。uri
是网页地址,如:http://www.webkaka.com/
一句话说,如果设置为 DENY
,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN
,那么页面就可以在同域名页面的 frame 中嵌套。
IIS7.5设置禁止网页被iframe框架引用
同IIS6一样,IIS7.5也是通过设置HTTP头来实现。
进入 HTTP 响应标头 设置界面,点击“添加...”,然后“名称”输入 X-Frame-Options
,“值”输入 SAMEORIGIN
,点击“确定”按钮,就完成了设置。
IIS7.5设置禁止网页被iframe框架引用
通过JS设置某张网页不允许被iframe框架引用
上面的方法是对整个网站所有网页都有效的,如果只想某个网页禁止被iframe框架引用,该如何处理呢?我们可以通过JS设置某张网页不允许被iframe框架引用。方法其实也挺简单,代码如下:
-
<script language="javascript"> if(window.self != window.top){ window.top.location.replace(window.self.location); } </script>
原理是判断 window.self
是否等于 window.top
。