分享

使用 X-Frame-Options header 拒绝被嵌入框架(iframe…)

 weiledream 2014-10-24
防止点击劫持(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>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多