【发布时间】:2014-10-08 14:53:11
【问题描述】:
我们的网站目前无法避免点击劫持,所以我进入了 web.config 并添加了
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="DENY" />
</customHeaders>
</httpProtocol>
</system.webServer>
这是非常直接的代码。我的问题是它只是不起作用。我的问题是:
- 有没有办法让我查看
X-Frame-Options是否在标头响应中?我用 httpfox 查找它并没有得到任何东西,所以我无法验证web.config是否真的在标题中放了东西。 - 为什么这不起作用?我可以做些什么来测试或继续前进?
我确实尝试在Application_Start 方法的Global.asax 中添加它,但我在调试时似乎无法“命中”这个方法;它没有达到断点。
private void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
HttpContext.Current.Response.AddHeader("x-frame-options", "DENY");
LogHelper.Info("Cost of Care Web Application Starting");
}
我想补充一点,我已经尝试将它直接添加到 head 标签中,我也尝试将它添加到这样的元标签中
<meta http-equiv="X-Frame-Options" content="deny">
【问题讨论】:
-
我以前遇到过这个问题,并且总是发现自己必须将
X-Frame-Options直接放在代码中:Response.AddHeader("X-Frame-Options", "DENY");我无法告诉你为什么它不起作用,尽管作为文档让它看起来应该。 -
我搜索了我的解决方案,发现它已经在 global.asax 的“application_start 方法....
-
如果不是从 Global.asax 中添加的,它在 Global 的哪个部分?
-
(在上面进行了编辑)但它在“application_start)方法中
-
在 Global.asax 中创建一个
protected void Application_BeginRequest(){}方法并将其添加到那里。
标签: iis x-frame-options