Clickjacking: X-Frame-Options header missing的漏洞解决方案
X-Frame-Options HTTP 响应头, 可以指示浏览器是否应该加载一个 iframe 中的页面。 网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。
Nginx配置如下
在nginx.conf的 http标签加入下面代码
1 |
add_header X-Frame-Options SAMEORIGIN; |
示例如下图所示(红框内的代码)

添加完成保存后,让nginx重新加载配置,命令如下
1 |
/etc/init.d/nginx reload |
Apache配置
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面代码添加到 'site' 的配置中
1 |
Header always append X-Frame-Options SAMEORIGIN |
IIS配置
配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中
1 2 3 4 5 6 7 8 9 10 11 |
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer> |
X-Frame-Options 响应头
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。
X-Frame-Options 有三个值:
DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。