【发布时间】:2013-02-28 05:14:23
【问题描述】:
我们最近运行了一个 Appscan 应用程序,报告在几页上显示: 对原始请求应用了以下更改:
- 将 HTTP 标头设置为“http://bogus.referer.ibm.com”
推理:
相同的请求在不同的会话中发送了两次,并收到了相同的响应。 这表明没有一个参数是动态的(会话标识符仅在 cookie),因此应用程序容易受到此问题的影响。
我对如何处理这个问题有点困惑,我应该只查看 Request.UrlReferrer 并确保它与 URL 中的主机相同,还是有更好的方法来处理这个问题?
谢谢。
【问题讨论】:
-
并非所有浏览器都发送
Referer标头。你应该使用 CSRF 令牌。 -
Referrer 与问题没有直接关系 - AppScan 只是在失败时尝试使用不同的referrer 的请求。忽略那一点; “推理”更好地描述了这个问题。
-
再看一遍后,我相信我看到了可能发生的事情。我在注销时有 Session.Abandon() ,但是如果会话在用户没有做任何事情的情况下就过期了,那么就没有放弃,也许这就是 appscan 能够两次获得相同响应的方式,因为会话 cookie 没有被删除而只是又捡起来了
标签: asp.net security protect-from-forgery