【问题标题】:Square payments: How to protect 'cards on file' from a data breach方形支付:如何保护“存档卡”免受数据泄露
【发布时间】:2021-11-29 11:24:31
【问题描述】:

我正处于整合 Square Payments 的早期阶段。在我的应用程序中,允许用户保存他们的卡详细信息是有意义的,因为我们期望进行多次小额交易。 Square 将此功能称为“存档卡片”。

作为此过程的一部分,您将在 Square 的系统中创建客户和相关卡;这些 ID 将保存在我的系统中并与我的用户相关联;这样,当他们再次付款时,他们可以选择使用存档卡的选项。 实际从卡中扣款的 API 只需要这两个 ID 和一个金额

让我担心的是,我的数据库中保存着从客户卡中扣款所需的所有数据;我可以编写一个脚本,只向我的所有客户收取一定数额的费用——自然,有权访问我数据的黑客也可以做同样的事情。

我没想到我的系统中会有这种级别的风险 - 我的假设是 Square 会将我与此隔离(通过某种用户对丢失数据的挑战 - 例如 CCV 编号)。似乎安全的选择是不使用“存档卡”功能并让用户每次都重新输入。

这是对的,还是我在这里完全误解了什么?

【问题讨论】:

  • 不熟悉 Square 的数据库结构 - 当您这么说时,“...我的数据库保存了从客户卡中收取费用所需的所有数据,”信用卡信息的完整纯文本版本(16 位数字、到期日、CVV 等)都可以从数据库中看到而无需任何加密? 鉴于 PCI 标准,我非常怀疑情况是否如此
  • 请仔细阅读Square's PCI compliance and policy notes - 我不认为你应该有任何顾虑。您在本地存储的 ID 本身不会让您面临任何 PCI 合规性故障。它对应于 Square 的数据库,允许他们在不暴露客户信息的情况下代表您进行付款。
  • 否 - Square 以不透明的方式保存该数据 - 我无法获取它。但我要说的是,这并不重要,因为我确实掌握了足够的信息,可以在我喜欢的任何时候(通过调用 Square API)对卡进行收费。
  • 这无关紧要。是的,您可以盲目地向客户收费,而他们实际上并没有要求收费。也就是说,任何供应商都可以。 您认为 Square 会在不因欺诈性收费而撤销您的帐户的情况下让这种情况经常发生吗? 他们会在采取行动之前接到一些电话/撤销。
  • 反正这个问题也和编程无关。它可能更适合InfoSec

标签: square-connect


【解决方案1】:

要从卡中扣款,需要您的 Square 访问令牌以及卡 ID。最好将该访问令牌存储为环境变量以限制安全风险。如果有人获得了对您数据库中卡 ID 的访问权,那么如果没有与您的开发者帐户相关联的访问令牌,他们将无法向任何卡收费。

【讨论】:

    【解决方案2】:

    我确实错过了一些东西 - 因为客户保存的卡上的任何费用都会记入我的帐户(如 Square 门户中的配置),任何欺诈性费用的唯一受益人将是我。黑客无法获得资金,因此风险范围有限。

    显然,如果我是一家欺诈性公司,用户就会面临风险 - 欧盟似乎对此并不满意,今年即将发生的变化将需要在销售点从用户那里获取更多信息。

    Strong Customer Authentication

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 2015-08-16
      • 2015-04-19
      • 2015-07-30
      • 2011-08-03
      • 1970-01-01
      • 2011-04-16
      • 2019-12-31
      相关资源
      最近更新 更多