我们的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>
这种矛盾配置有替代方案吗?我们是否在削弱安全性?
答案 0 :(得分:2)
通过从Html.AntiForgeryToken中抑制X-Frame-Options标头,您可能会承担应用X-Frame-Options标头的责任,从而削弱安全性。
在您的情况下,安全性不会被削弱,因为您使用Web.config来应用具有与Html.AntiForgeryToken相同的值的X-Frame-Options标头。您的安全性实际上强于Html.AntiForgeryToken提供的安全性,因为X-Frame-Options标头将应用于所有响应,其中包括您忽略或无法使用Html.AntiForgeryToken的表单。