检测到跨站点请求伪造(CSRF)时应返回的响应

gfr*_*ius 9 coldfusion csrf owasp

当检测到跨站点请求伪造(CSRF)时,我应该回复什么响应?

有一个扫描工具,我无法控制,这是说我的一个页面没有受到保护CSRF.但它是.我发回的响应是正常的202,句子"请求不能被处理".就是这样,没有任何信息被发送回攻击者,我记录了尝试.但是这个软件说它仍然容易受到影响CSRF.我可以很容易地自己运行测试并弄清楚但是在扫描和测试之间需要很长时间才能得到相同的软件,这就是我要求stackoverflow的原因,所以我希望能在下一次计划的扫描中将其删除.我正在考虑发送一个statusCode 404410代替一个202. http://www.cfgears.com/index.cfm/2009/8/11/cfheader-404-status-codes-and-why-you-shouldnt-use-them

CSRF检测到a时,您建议发回什么?

Sil*_*Fox 13

403 Forbidden 由于用户在技术上被授权访问该站点,因此只是禁止的特定操作(没有正确的CSRF令牌的HTTP POST).

Web服务器可以响应于来自客户端的对网页或资源的请求而返回403 Forbidden HTTP状态代码,以指示可以到达服务器并理解该请求,但是拒绝采取任何进一步的动作.状态代码403响应是Web服务器被配置为拒绝由于某种原因由客户端访问所请求的资源的结果.

请记住,攻击者无法读取此响应,并且在大多数情况下,用户将看不到消息或HTTP响应,因为CSRF攻击并非旨在让受害者明白它正在发生.如果你有一个有效的CSRF机制,你的网站不太可能以这种方式受到攻击 - 防御也是威慑.

  • 值得注意的是,当用户长时间打开选项卡(例如他们正在处理某些事情)时,这是一个常见错误。如果他们的会话过期,并且他们从另一个选项卡重新登录,则当他们从旧选项卡提交表单时,他们将收到此错误。因此,如果重要的话,请确保表格不会丢失! (2认同)
  • 我想说,当你的 CSRF 保护触发时,有 100 次中有 99 次实际上是在开发过程中,当开发人员在使用 API 时忘记了 CSRF。在这种情况下,提供信息丰富的响应可能很有价值。 (2认同)