防止点击劫持(Clickjacking)的方法
1.在服务器端设置 X-FRAME-OPTIONS
该方法可以适用于比较新的一些版本比较新的浏览器,例如:
- IE8 and IE9
- Opera 10.50+
- Safari 4+
- Chrome 4.1.249.1042+
- Firefox 3.6.9+(Or earlier with NoScript)
如果你使用的是Apache服务器,请参考以下设定方法:
- 方法1:设置httpd.config文件
在该文件中添加如下代码 Header set X-Frame-Options SAMEORIGIN
如果你想允许你自己的网站或者一些其他的网站在iFrame里引用你的网页内容,可以用如下代码:
SetEnvIf Referer “kevin-wu.net” iframes_are_cool=1
Header set X-Frame-Options SAMEORIGIN env=!iframes_are_cool
将kevin-wu.net换成你的网址即可。
- 方法2:设置.htaccess文件
在该文件中添加如下代码: Header set X-Frame-Options SAMEORIGIN
如果你想允许你自己的网站或者一些其他的网站在iFrame里引用你的网页内容,可以用如下代码:
SetEnvIf Referer “kevin-wu.net” iframes_are_cool=1
Header set X-Frame-Options SAMEORIGIN env=!iframes_are_cool
将kevin-wu.net换成你的网址即可。
如果你使用的是IIS浏览器,请参照以下设定方法:
打开因特网服务管理器(InternetServiceManager),点击HTTP Headers标签,在自定义Header中点击添加按钮。在弹出筐的Header名中输入”X-Frame-Options”,在值中输入”DENY” 或者”SAMEORIGIN”. 点击确定。
注:
设置”DENY”参数,浏览器会拒绝一切包含iFrame/Frame对网页的访问。(包括你自己的网站也不能使用iFrame/Frame)
设置”SAMEORIGIN”参数,则浏览器会拒绝 访问源 与 iFrame/Frame中包含的网页源 不同时的请求。
1.3.4 IIS 配置 X-Frame-Options
在 web 站点的 web.config 中配置:
<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
2.在网页上添加防止加载iFrame的Javascript代码
此方法适用于不支持X-FRAME-OPTIONS的版本较老的浏览器。
<</span>script>
try { top.document.domain } catch (e) {
var f = function() { document.body.innerHTML
= ”; }
setInterval(f, 1);
if (document.body) document.body.onload = f;
}
</</span>script>