我们目前正在开发一个完全基于 AJAX 的应用程序,它将通过 RESTful API 与服务器交互。我已经考虑了防止针对 API 的 XSRF 攻击的潜在方案。
session cookie,这也是
与每个请求双重提交。
Javascript,检索 token 时
用户登录,并签署所有
使用该 token 的请求。
我倾向于 OAuth 方法,主要是因为我想提供对我们 API 的 3rd 方访问,而且我不想实现两个身份验证方案。
在这种情况下,OAuth 消费者是否有任何理由无法工作?
请您参考如下方法:
大多数 AJAX 库会设置一个额外的 header “X-Requested-With: XMLHttpRequest”,这在基本的 XSRF 攻击中很难伪造(尽管如果与 XSS 结合可能会出现)。如果您希望所有请求都是 AJAX,那么验证此 header 是否存在是一个很好的纵深防御策略。