35

我有一个动态网站,我必须在其中防止点击劫持攻击。在搜索时获取这些类型的值的数据库中,我对点击劫持知之甚少,但究竟是什么没有得到所以请任何知道的人帮助我。

4

2 回答 2

86

X-FRAME-选项

在 global.asax 文件中添加此代码。

protected void Application_BeginRequest(object sender, EventArgs e)
{
  HttpContext.Current.Response.AddHeader("x-frame-options", "DENY");
}

或者

只需将其添加到<system.webServer>您的Web.Config文件中

<!--Clickjacking security-->
    <httpProtocol>
      <customHeaders>
        <add name="X-Frame-Options" value="DENY" />
      </customHeaders>
    </httpProtocol>
    <!--End clickjacking-->

这个小片段在您的 http 响应中添加了一个名为 x-frame-options 的 http 标头,并防止您的网站在“现代”浏览器的 iframe 中加载。
X-Frame-Options 有 3 个可能的值:

  1. DENY:不允许任何网站构建您的应用程序
  2. SAMEORIGIN : 只允许同一个应用站点框架
  3. ALLOW-FROM:只允许特定域来构建您的应用程序
于 2015-08-24T11:19:55.413 回答
3

尝试目前最好的旧版浏览器断帧脚本

防御点击劫持的一种方法是在每个不应加框的页面中包含一个“frame-breaker”脚本。即使在不支持 X-Frame-Options-Header 的旧版浏览器中,以下方法也可以防止网页被构图。

在文档 HEAD 元素中,添加以下内容:

首先将 ID 应用于样式元素本身:

<style id="antiClickjack">body{display:none !important;}</style>

然后在脚本中立即按其 ID 删除该样式:

<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>
于 2015-08-24T11:15:22.993 回答