x-frame-options的出现一部分是为了防止一些别有用心的者制作钓鱼网站,现在支持的浏览器有一下:
- chrome 4.1.249.1042
- firefox 3.6.9(1.9.2.9)
- IE 8.0
- opera 10.50
- safari
使用 X-Frame-Options 有三个可选的值:
DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
ALLOW-FROM:允许frame加载的页面地址
PHP代码:
header('X-Frame-Options:Deny');
Nginx配置:
add_header X-Frame-Options SAMEORIGIN
Apache配置:
Header always append X-Frame-Options SAMEORIGIN
在grape&Sinatra中设置办法
get "/url" do response.headers["X-Frame-Options"] = '' do something end
在header中增加 X-Frame-Options
SAMEORIGIN 输出,如下图:
更多详解:https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet
其它防止被 FRAME 加载你的网站页面方法:
1. meta 标签:很多时候没有效果,无视。
<meta http-equiv="Windows-Target" contect="_top">
2. js 判断顶层窗口跳转,可轻易破解,意义不大。
function locationTop(){ if (top.location != self.location) { top.location = self.location; return false; } return true; } locationTop();
破解:
// 顶层窗口中放入代码 var location = document.location; // 或者 var location = "";