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

  • 用户进行身份验证并收到一个
    session cookie,这也是
    与每个请求双重提交。
  • 我们实现了一个 OAuth 消费者
    Javascript,检索 token 时
    用户登录,并签署所有
    使用该 token 的请求。

  • 我倾向于 OAuth 方法,主要是因为我想提供对我们 API 的 3rd 方访问,而且我不想实现两个身份验证方案。

    在这种情况下,OAuth 消费者是否有任何理由无法工作?

    请您参考如下方法:

    大多数 AJAX 库会设置一个额外的 header “X-Requested-With: XMLHttpRequest”,这在基本的 XSRF 攻击中很难伪造(尽管如果与 XSS 结合可能会出现)。如果您希望所有请求都是 AJAX,那么验证此 header 是否存在是一个很好的纵深防御策略。


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!