安全提示“X-Frame-Options头未设置”的解决方法

时间:2024-02-25 12:39:36

漏洞检测提示“X-Frame-Options头未设置”,意思是网页可能被别人用iframe框架使用。事实上,我的网页已经通过js程序禁止被iframe框架嵌入使用了。不过,对于使用iis的网站来说,可以设置下iis,无需在网页里编写js代码,就能轻松实现网站的所有网页禁止被iframe框架嵌入使用。本文将给大家介绍iis如何设置禁止网页被iframe框架引用。

IIS6设置禁止网页被iframe框架引用 :

在弹出窗口里,自定义 HTTP 头”输入 X-Frame-Options ,“自定义 HTTP 头值”输入 SAMEORIGIN ,点击“确定”按钮,就完成了设置。

这里解释一下 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,点击“确定”按钮,就完成了设置。

通过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 。