【问题标题】:Passing csrf token to Stripe将 csrf 令牌传递给 Stripe
【发布时间】:2023-04-02 01:49:01
【问题描述】:

我正在使用 stripe.js 进行条带支付。我需要设置一个回调 wenhook 来接收来自 stripe 的请求。

由于 webhook 是通过条带发布的 - 我已将其标记为 csrf_excempt

  1. 制作此视图csrf_excempt 是否有任何风险?
  2. 如果我应该在此视图上设置 csrf 保护,我如何从条带中传递和取回 csrf 令牌?

【问题讨论】:

  • 这正是 CSRF 令牌要防止的。
  • 看看here
  • @Mounir:这不使用 stripe.js - 我们不想将数据发布到我们的服务器。太多 PCI 合规问题。
  • @Bibhas:csrf_token 是您和您的用户之间的共享密钥。将其传递给第三方也不是一个好的设计。
  • @shabda 但您计划将您的令牌传递给第 3 方。即使你这样做了,因为Yuji回答了什么也没关系。

标签: django csrf stripe-payments django-csrf


【解决方案1】:

正如接受的答案所说,没有办法将 CSRF 令牌与条带回调一起使用。

Stripe Webhook Documentation 中推荐的安全方法是使用传入 webhook 中的 ID 将请求发送回 Stripe 以获取完整的事件详细信息。

【讨论】:

    【解决方案2】:

    您将来可能还想考虑只使用django-stripe-payments

    【讨论】:

      【解决方案3】:

      那是行不通的。绝对禁用来自 Stripe 的回调的 csrf。

      即使你..

      • csrf_token 传递给条带
      • 找到了一种方法让 Stripe 将相同的令牌发布回您的回调 URL

      此时令牌将无关紧要,因为令牌仅适用于您当前的浏览器会话(通常是 cookie)。

      CSRF 令牌在每次请求时生成并发送到浏览器以存储在 cookie 中。 Stripe 不会有这个 cookie,因此你会得到一个相同的 CSRF 错误。

      【讨论】:

        猜你喜欢
        • 2018-08-06
        • 2018-10-23
        • 2015-01-31
        • 2014-10-12
        • 2017-04-12
        • 2015-05-13
        • 2017-02-17
        • 2014-10-12
        相关资源
        最近更新 更多