【问题标题】:prevent website to be injected in iframe - server and client validation防止网站被注入 iframe - 服务器和客户端验证
【发布时间】:2017-09-13 06:13:36
【问题描述】:

我正在开发一个 asp.net mvc 网站并希望实现一些安全功能。其中之一是防止网站被注入 iframe。我已经读到可以使用作为服务器端验证的 x-frame-options 来做到这一点,但我还读到它也需要使用 JS 实现客户端验证。有人可以帮我吗?非常感谢!!

【问题讨论】:

  • 首先,在所有的安全检查中都要避开客户端。你可以做客户端,但在这种情况下,你也应该实现服务器端,因为根据定义,客户端是最终用户控制的,可以被绕过。客户端是一个简单的 javascript stackoverflow.com/questions/7027799/…
  • 是的,正如我上面提到的,我已经考虑过服务器端,但也需要客户端。无论如何,我想下面的答案会有所帮助
  • 看起来很有希望,对于客户端部分,请查看我之前评论中的链接

标签: asp.net-mvc security x-frame-options


【解决方案1】:

客户端验证可以使用破坏 JS 来完成。 要实现服务器端验证,您需要(正如您已经提到的)在 IIS 或应用程序(全局 asax 文件)中设置 x-frame-options:

IIS:

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

全球asax:

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

有关破坏 js 的更多信息,请参阅此链接: https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet

我对旧的浏览器也有同样的问题,例如 Mozilla 3.0

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2016-03-03
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    相关资源
    最近更新 更多