保护我的 ASP.net MVC3 网站免受"Click jacking"



最近我浏览了一些网站面临的安全问题。幸运的是,遇到了一个新术语"点击劫持"

我知道只有当我的网站可以在IFrame中加载时,才会发生这种攻击。

进一步的调查有助于了解将"x-frame-options"设置为"DENY"会阻止网站加载到IFrame 中

但我不知道如何实现这一点,因为我是这个领域的新手?

在Global.asax中,您可以添加以下

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

只需将以下代码放在web.config文件的<system.webServer>部分下

<httpProtocol>
  <customHeaders>
    <add name="X-Frame-Options" value="DENY"/>
  </customHeaders>
</httpProtocol>

注意X-Frame-Options标头可能包含三个标头之一代币。你可以添加其中任何一个。每一个都有自己的意义。

  • 否认
  • 同源
  • ALLOW-FROM原点

有关详细信息,请访问MSDN博客:使用X-Frame-Options 对抗点击劫持

看看这个:

https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options#Configuring_Apache

它基本上是在所有响应上发送的响应标头。你可以为每个单独的页面编写你的网站代码,但如果你能够编辑JUST your site的配置,更好的方法是在那里处理它。。。

APACHE和IIS都应该有这样的选择——IIS似乎就在这里:

http://support.microsoft.com/kb/2694329

对于希望保护.net 5.0 MVC/Razor页面的用户,请在Startup.cs中的Configure方法中添加以下内容:

app.Use(async (context, next) =>
{
    context.Response.Headers.Add("X-Frame-Options", "DENY");
    await next();
});
  • OWasp DotNet安全备忘单
  • Hanselman关于安全头的博客文章

最新更新