【问题标题】:Django - CSRF Tokens for authenticated and unauthenticated users?Django - 用于经过身份验证和未经身份验证的用户的 CSRF 令牌?
【发布时间】:2016-11-30 16:09:09
【问题描述】:

我想知道 Django 的 CSRF 令牌是否会为 已验证用户和未验证用户自动生成?我很好奇,因为我想制作一个用于发布表单数据的 API,以便任何经过用户身份验证或未经身份验证的用户都可以对 API 端点进行发布调用。但我想知道是否必须将 CSRF 令牌“附加”到每个用户的标头? (暗示未经身份验证的用户也将拥有 CSRF 令牌)

【问题讨论】:

    标签: django api token forms-authentication csrf


    【解决方案1】:

    在使用 Django 的默认身份验证机制时,经过身份验证和未经身份验证的用户都需要有效的 CSRF 令牌。当用户登录时,令牌会轮换。

    您是否需要令牌与其说取决于用户是否经过身份验证,不如说取决于身份验证机制。如果身份验证使用会话/cookie 对用户进行身份验证,攻击者可能会使用随每个请求隐式发送的会话信息来伪造请求并执行受害者有权执行的某些操作。另一方面,如果您使用例如令牌认证,令牌必须随每个请求显式发送,攻击者无法知道令牌或伪造使用令牌的请求。

    【讨论】:

    • 谢谢!我仍然很困惑为什么当一个人没有登录时需要一个 csrf 令牌(cookie 不存在)。如果一个人没有登录,大多数操作不是“安全”的吗?
    猜你喜欢
    • 2019-09-25
    • 1970-01-01
    • 2018-08-03
    • 2020-11-15
    • 2016-01-17
    • 2019-03-12
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多