【问题标题】:How to properly get Account Id to frontend from Stripe Connect?如何从 Stripe Connect 正确获取 Account ID 到前端?
【发布时间】:2021-05-26 07:04:02
【问题描述】:

我有一个使用 Stripe 关联帐户的应用程序。我需要在我的应用程序中存储有关哪个 Stripe 帐户链接到特定客户端的信息。所以我目前的工作流程是:

  1. 我在数据库中为我的应用程序的客户端设置了一个Stripe Account Id
  2. 在特定页面上,我的前端发送有关哪个帐户 ID 链接到特定客户端的请求
  3. 我向我的前端发送了一个 Stripe 帐户 ID 作为响应
  4. 我在前端使用连接的帐户处理卡信息并将令牌发送到我的后端
  5. 在后端,我创建 Source 并将其检索回前端
  6. 在前端,我处理可能的 3DS 并将源发送回我的后端
  7. 在后端,我完成支付并将状态发送回我的前端

所以,我的问题是 - 在此过程中是否存在任何可能的安全风险?我想不出任何其他将帐户 ID 信息传递到前端的方法。我需要使用特定的帐户 ID 在前端初始化 Stripe,以通过 Stripe 元素检查信用卡数据。如果没有前端中的帐户 ID,我无法创建与特定连接的 Stripe 帐户相关联的卡付款,所以我认为没有其他方法 - 我错了吗?

随着我的应用程序中的客户端发生变化,不可能将帐户 ID 存储在 ENV 文件中,我只需要以某种方式从我的服务器获取它。

我还尝试仅使用存储在我的 ENV 文件中的 PK 通过 Stripe 元素检查卡信息,但是当我想使用已连接的帐户完成付款时,该过程失败了。

你们有针对这种情况的安全工作流程吗?

【问题讨论】:

    标签: javascript php stripe-payments


    【解决方案1】:

    与您的前端共享帐户和来源(您是说 PaymentMethod 吗?)ID 不仅很好,而且在意料之中。为了代表已连接的帐户向 Stripe.js 发出请求,您需要在初始化时provide 帐户 ID。

    对这些 ID 进行任何恶意操作都需要一个密钥,只要您不与客户端共享它就可以了。

    【讨论】:

    • 感谢您的回答。我的意思是 Source - 我用来检查是否需要 3DS 并相应地处理它。如果有人好奇,我终于使用 SSR 处理了帐户 ID - 我在服务器上获取帐户 ID,因此它不会暴露在客户端的网络流量中。因此,如果你们正在使用 SSR 框架,则可以添加额外的安全层。当然,秘密 ID 也安全地存储在我的服务器上的 ENV 文件中。感谢您的澄清。
    猜你喜欢
    • 2018-02-25
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多