CSRF保护仅适用于有副作用的请求(POST,DELETE,PUT)?

时间:2011-07-15 12:39:55

标签: security csrf csrf-protection

据我所知,跨站点请求伪造攻击他们“仅”用于更改服务器端的状态。

假设:

  • 我有一个REST Web应用程序,我确信HTTP GET请求不会改变我的应用程序持久状态(没有副作用)
  • 我使用特定于会话的密钥来授权请求​​

我是否需要验证GET请求的会话特定密钥?

1 个答案:

答案 0 :(得分:2)

这不是一个请求方法的问题(GET和POST都可以对持久状态进行更改),因为每个都可以被各种CSRF攻击向量利用。当您谈到“特定于会话的密钥”时,我假设您正在讨论同步器令牌模式(OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF)中有更多内容)。显然,这是为了防止浏览器在第三方的协调下代表您发出未经授权的请求。

所以问题是“我的应用是否需要针对CSRF的保护?”听起来你的应用程序中的持久性数据没有任何变化,所以在表面上,答案是“不”。您通常只会在CSRF攻击会产生负面影响的地方找到反请求伪造令牌,这听起来像是您不必担心的事情。