2010-07-25 241 views
35

我想让我的客户用户输入他们的信用卡信息,以便我可以每月收费。在MySQL数据库中保存信用卡信息?

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

应该将它保存在MySQL数据库(“用户”表)还是这种信息太敏感,需要存储在另一个地方?

我没有这方面的经验,并会很高兴如果有人可以告诉我如何做到这一点。

谢谢。

+18

根据适用于您经营业务所在地的法律,以这种方式存储信用卡号码甚至可能是*非法*。要小心,与你的银行和/或法律代表谈谈。 – 2010-07-25 11:14:43

+0

它是合法的吗?在大多数情况下,我们使用Paypal和ccavenue进行在线交易。如果您存储了信用卡信息,则需要更多的安全性。 – 2010-07-25 14:40:21

+1

不要。 (我作为程序员和买家的意见。) – 2010-07-25 19:18:49

回答

73

如上所述,不要将信用卡信息存储在数据库中。这是一个麻烦的秘诀。这样做会使你成为黑客非常有吸引力的目标,并且如果他们成功地获取黑客,就会结束你的生意并可能毁掉你的生活以及信用卡号码被盗的人的生命。

说了这里有三件事情要考虑:

1)最好的办法是使用支付处理器/支付网关,提供定期结算。这方面的一个例子是Authorize.Net's Automated Recurring Billing服务。一旦您设置了订阅,他们会自动为您自动为用户开账单,并让您知道交易结果。它可以为您节省大量的工作,并减轻您存储信用卡信息的责任。

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

3)国家法律取代PCI合规。如果您遭受违规并且信用卡号码被盗,您可能会被起诉。各州之间的法律各不相同,并且随着立法者们才刚刚开始意识到这是多么严重的问题而不断变化。

就加密而言,请确保您阅读了哪些加密算法是安全的并且尚未破解。 Blowfish是一个很好的开始,如果您使用PHP,建议使用mcrypt libraryexample)。

+0

哪里是找到当地法律的最佳地点? – 2013-09-26 14:26:29

+0

非常有用的信息约翰。 – 2015-03-15 01:09:52

+1

Square.com有一个整洁的API。他们将以符合PCI规范的方式为您存储卡信息。 – AjaxLeung 2016-07-30 11:24:50

15

最安全的方式是商店系统上的信用卡信息,但让3 第三方支付提供商为你做它。

+0

怎么样?哪个?你能否给我更多的信息 – 2010-07-25 11:27:00

+0

这样,所有的法律问题将与第三方。 – 2010-07-25 11:47:05

+1

+1 - 除非您的客户符合PCI标准,否则请不要这样做。你可能会让你和你的客户陷入一个受伤的世界。使用支付处理器(如PayPal)(但其费用令人发指),GoogleCart,Authorize.net – gnome 2010-07-25 14:16:19

6

不需要您使用PayPal等第三方支付提供商,但如果您打算存储支付卡信息,则需要使用PCI compliant。阅读这篇关于BC Ferries, who face substantial fines for not keeping up to date with PCI compliance的文章,了解它符合PCI标准的严肃程度。

我目前的雇主正在通过PCI合规 - 这不是一个微不足道的过程,并且需要员工进行审计。执法取决于国家和州/省的法律 - 加拿大IIRC要求您通过PCI聘用委员会进行PCI认证,而美国的一些州则允许PCI合规性审核公司代替PCI委员会。