快捷搜索:   nginx

X-Frame-Options头未设置解决办法防止网页被Frame

用360检测网站,发现提示X-Frame-Options头未设置,在解决这个问题之前,先要了解什么是X-Frame-Options头。
X-Frame-Options 是HTTP响应头之一,是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来告诉浏览器,他们的内容是否可以被嵌入到其它网站中,一般我们是设置成不允许以避免网页被嵌套劫持。

X-Frame-Options的危害: 攻击者可以使用一个透明的、不可见的iframe,覆盖在目标网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击iframe页面的一些功能性按钮上,导致被劫持。

解决方案:

使用 X-Frame-Options 有三个可选的值。赋值有如下三种:

(1)DENY:不能被嵌入到任何iframe或frame中。

(2)SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。

(3)ALLOW-FROM uri:只能被嵌入到指定域名的框架中。



绝大部分浏览器支持X-Frame-Options属性:

Feature Chrome Firefox (Gecko) Internet Explorer(8.0以上) Opera Safari



具体的设置方法(以下用允许同源网站嵌入为例,也可以用deny直接禁止):

Apache配置:


Header always append X-Frame-Options SAMEORIGIN


nginx配置:

add_header X-Frame-Options SAMEORIGIN;


IIS配置:


<system.webServer>
...

<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>

...
</system.webServer>


也可在编写PHP代码时在代码中加入:

header('X-Frame-Options: SAMEORIGIN');


具体可以查看:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论