我应该在每个POST请求中使用ValidateAntiForgeryToken吗?

时间:2015-06-26 04:15:27

标签: c# asp.net-mvc security

我有一堆HttpPost请求的页面,我从同事那里用Acunetix(我认为)扫描了我的网站。结果显示HTML form without CSRF protection (9)。建议是通过实现令牌来使用Same-origin policy。我的问题:

  1. 从性能与安全的角度来看,如果我在每个Token请求中使用POST,是否值得?我只在敏感Token请求中使用POST,例如LogIn,Register,Transaction等。
  2. 这可能与标题无关,但为什么像Acunetix这样的pentest软件只列出我的几个页面CSRF可能存在风险POST请求,检测模式如何工作?
  3. 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

是的,您应该在每个HttpPost中包含ValidateAntiForgeryToken属性...假设您使用的是最佳做法,而HttpPost意味着该请求会产生某种副作用。

有关此事的长时间讨论,请参阅This discussion over on IT security SE site.

看起来Acunetix只在包含没有令牌的表单的每个页面上报告此情况。请参阅Their documentation