X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, </iframe> 或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。
可在HTTP的Header头信息中添加设置来加以控制。添加Header方法有多种,可以在WebServer中添加配置,也可在程序代码中实现。
X-Frame-Options 有三个值:
- DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 - SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。 - ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。
控制实现:
- PHP代码控制
header('X-Frame-Options:Deny');
- Apache控制
启用mod_headers.so,在httpd.conf中或者对应的vhosts配置项内添加,注意:早期的版本只能添加main server或virtual host配置项内,在<Directory> 或 <Location>等配置项内添加会出错
Header always append X-Frame-Options SAMEORIGIN
- Nginx配置
在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>
评论已关闭!