如何通过ASP.NET c#中的Clickjacking来防止我们的网站?

sha*_*ank 28 c# asp.net clickjacking

我有一个动态网站,我必须从clickjacking攻击中获得安全保障.在数据库中搜索时获取这些类型的值我对点击劫持知之甚少,但究竟是什么没有得到如此请任何知道的人帮助我.

Mus*_*yed 74

X-FRAME-OPTIONS

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

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

要么

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

<!--Clickjacking security-->
    <httpProtocol>
      <customHeaders>
        <add name="X-Frame-Options" value="DENY" />
      </customHeaders>
    </httpProtocol>
    <!--End clickjacking-->
Run Code Online (Sandbox Code Playgroud)

这个小小的代码片段会在您的http响应中添加一个名为x-frame-options的http标头,并阻止您的网站在"现代"浏览器中加载到iframe中.
X-Frame-Options可以有3个值:

  1. 拒绝:不允许任何网站构建您的应用程序
  2. SAMEORIGIN:只允许相同的应用程序站点进行框架
  3. 允许来自:仅允许特定域构建您的应用程序

  • 绝对是配置中最好的选择(y) (2认同)

小智 3

尝试目前最好的旧版浏览器框架破坏脚本

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

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

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

<style id="antiClickjack">body{display:none !important;}</style>
Run Code Online (Sandbox Code Playgroud)

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

<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>
Run Code Online (Sandbox Code Playgroud)