38

我想让我的客户用户输入他们的信用卡信息,这样我就可以每月向他们收费。

我想知道应该如何保存这些信息?

是应该保存在 MySQL 数据库(“user”表)还是这种信息过于敏感,需要存放在其他地方?

我没有这方面的经验,如果有人能建议我如何做到这一点,我会很高兴。

谢谢。

4

3 回答 3

86

如上所述,不要将信用卡信息存储在数据库中。这是麻烦的秘诀。这样做将使您成为黑客非常有吸引力的目标,如果他们成功地检索到了黑客,您的业务将终止,并可能会毁掉您的生活以及信用卡号码被盗的人的生活。

话虽如此,这里有三件事需要考虑:

1) 您最好的选择是使用提供定期计费的支付处理器/支付网关。Authorize.Net 的自动定期计费服务就是一个例子。设置订阅后,他们会每月自动为您自动向用户收费,并让您知道交易结果。它为您节省了大量工作,并免除了您存储信用卡信息的责任。

2) 如果您确实存储了商店信用卡号,则必须遵循PCI 准则. 这些准则由支付卡行业制定,并定义了您可以做什么和不可以做什么。它还定义了必须如何存储信用卡信息。您将需要加密信用卡号,并且您应该(但不是必须)加密相关信息(到期日期等)。您还需要确保您的 Web 服务器和网络是安全的。未能满足 PCI 合规性将导致您的商家帐户丢失,并被永久禁止拥有真正的商家帐户。这将限制您使用不太灵活的第三方处理器。请记住,PCI 指南是一个良好的开端,但对于在线安全而言几乎不是“如何做”。您的目标是超过建议(很多)。

3) 州和国家/地区的特定法律取代 PCI 合规性。如果您遭受违规并且信用卡号码被盗,您将面临刑事起诉的风险。法律因州而异,并且不断变化,因为立法者才刚刚开始意识到这是一件多么严重的事情。

就加密而言,请确保您阅读了哪些加密算法是安全的并且尚未被破坏。Blowfish是一个好的开始,如果您使用 PHP,推荐使用mcrypt 库示例)。

于 2010-07-25T22:12:29.333 回答
17

最安全的方法是不要将信用卡信息存储在您的系统上,而是让第 3支付提供商为您完成。

于 2010-07-25T11:22:22.167 回答
6

您不需要使用 PayPal 等第三方支付提供商,但如果您要存储支付卡信息,则需要符合 PCI 标准。阅读这篇关于BC Ferries 的文章,该公司因未能及时了解 PCI 合规性而面临巨额罚款,以了解遵守 PCI 的严重性。

我现在的雇主正在通过 PCI 合规——这不是一个简单的过程,并且需要员工进行审核。执行取决于国家和州/省法律——加拿大 IIRC 要求您获得 PCI 雇佣委员会的 PCI 认证,而美国的一些州允许 PCI 合规审计公司代替 PCI 委员会服务。

于 2010-07-25T18:54:32.313 回答