【问题标题】:API CSRF protectionAPI CSRF 保护
【发布时间】:2016-12-27 02:19:35
【问题描述】:

我有一个由简单的 JSON API 和 React 前端组成的应用程序。身份验证通过 cookie 处理,前端由我用于 API 的同一个域提供。由于我不允许 CORS,想知道如果 API 仅接受带有一些自定义标头的请求(例如 X-Requested-With 设置为 XMLHttpRequest 时,API 是否会受到 CSRF 攻击的保护?

【问题讨论】:

    标签: api security csrf csrf-protection


    【解决方案1】:

    攻击者可以使用XMLHttpRequest 发送跨站点请求,而不会违反同源策略 (SOP) - 这里唯一的限制是攻击者的站点将无法看到响应。 Cookie 包含在受害者浏览器发送的每个请求中,因此 API 调用仍将通过跨站点 XHR 触发,因此该 API 仍然容易受到 CSRF 的攻击。

    如果您不想更改任何安全架构,请使用CSRF Prevention Cheat Sheet recommends checking the Origin header。本文档描述了其他方法,例如 CSRF 令牌同步器方法,它可以用作标头元素,被认为是一种更强大的防御方法。

    【讨论】:

    • 谢谢车。我使用在 localhost 但不同端口上运行的两个应用程序验证了这一点。我无法使用来自 app2 的跨站点 DELETE 请求破坏 app1 上的资源,但我能够使用 POST 创建一个资源。我的理解是,为了检查是否允许发送 xhr,在所有情况下都只会发送 http 选项请求。
    • @rodic 出于对世界上所有正确事物的热爱,请至少检查Origin - 我向你保证这是可以利用的。可以避免飞行前的选项。
    • 嘿,如果不清楚,我会从原始帖子中听取您的建议。只是想验证你所说的,因为我认为 sop 的工作方式不同。再次感谢。
    猜你喜欢
    • 2016-09-05
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2018-05-27
    • 2012-10-08
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多