尽管在Web.config中设置了X-Frame选项,但在global.asax中抑制防伪X-Frame选项标题会削弱安全性?

时间:2017-06-06 10:40:52

标签: asp.net-mvc asp.net-mvc-5 antiforgerytoken x-frame-options

我们的MVC5应用程序包含一个部分视图,使用Master.cshtml在所有页面上呈现Html.AntiForgeryToken。

在我们呈现另一个表单和另一个Html.AntiForgeryToken的页面上,在表单提交时抛出异常:

Server cannot append header after HTTP headers have been sent.

为了避免异常,我们可以在Global.asax App_Start内指定:

AntiForgeryConfig.SuppressXFrameOptionsHeader = true;

我们关注的是,我们可以让其他人将我们的网站嵌入到iFrame中,并启用“ClickJacking”&#39 ;?

无论我们是否使用Umbraco 7.6.1,都需要我们在Web.config中指定:

    <httpProtocol>
     <customHeaders>
      <remove name="X-Powered-By" />
      <add name="X-Frame-Options" value="SAMEORIGIN" />
     </customHeaders>
    </httpProtocol>

这种矛盾配置有替代方案吗?我们是否在削弱安全性?

1 个答案:

答案 0 :(得分:2)

通过从Html.AntiForgeryToken中抑制X-Frame-Options标头,您可能会承担应用X-Frame-Options标头的责任,从而削弱安全性。

在您的情况下,安全性不会被削弱,因为您使用Web.config来应用具有与Html.AntiForgeryToken相同的值的X-Frame-Options标头。您的安全性实际上强于Html.AntiForgeryToken提供的安全性,因为X-Frame-Options标头将应用于所有响应,其中包括您忽略或无法使用Html.AntiForgeryToken的表单。