AJAX风格的应用程序中的XSRF保护

Jam*_*ton 7 security ajax oauth csrf

我们目前正在开发一个完全基于AJAX的应用程序,它将通过RESTful API与服务器进行交互.我已经考虑过防范针对API的XSRF攻击的潜在方案.

  1. 用户验证并接收会话cookie,每次请求也会双重提交.

  2. 我们在Javascript中实现OAuth使用者,在用户登录时检索令牌,并使用该令牌签署所有请求.

我倾向于OAuth方法,主要是因为我想提供第三方访问我们的API,而不是必须实现两种身份验证方案.

有没有理由说OAuth消费者在这种情况下无法工作?

roo*_*ook 0

防止 XSRF 的最简单方法是检查每个 RESTful 请求的引荐来源网址,以确保请求来自同一域。会话 cookie 对于保持状态很重要,但它不能防御 XSRF,因为它也会与伪造的请求一起发送。基于引用者的 XSRF 保护系统在内存要求有限的嵌入式网络硬件上很常见,摩托罗拉在其大多数硬件上都使用这种方法。这不是最安全的 XSRF 保护,基于令牌的保护更好,但仍然可以通过 XSS 绕过这两个系统。基于令牌的 XSRF 保护的最大问题是,需要花费大量时间返回并修复每个请求,并且您可能会错过一些请求。

请务必阅读同源政策扫描您的网站是否存在 xss。您还应该阅读 OWASP Top 10 for 2010 A3-Broken Authentication and Session Management