在MySQL数据库中保存信用卡信息?

我想让我的客户用户input他们的信用卡信息,以便我可以每个月收费。

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

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

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

谢谢。

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

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

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

2)如果您存储商店信用卡号码,则必须遵循PCI准则 。 这些准则由支付卡行业设定,并确定您可以做什么,不可以做什么。 它还定义了如何存储信用卡信息。 您将需要encryption信用卡号码,您应该但不要求encryption相关信息(到期date等)。 您也将需要确保您的Web服务器和networking安全。 未能符合PCI合规性将导致您的商户账户丢失,并被永久禁止拥有真实的商户账户。 这会限制您使用不太灵活的第三方处理器。 请记住,PCI指南是一个好的开始,但在networking安全方面却不是一个“如何”。 你的目标是超出这个build议(很多)。

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

就encryption而言,请确保您阅读了哪些encryptionalgorithm是安全的,还没有被破坏。 Blowfish是一个很好的开始,如果你使用PHP,build议使用mcrypt库 ( 例子 )。

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

不要求您使用PayPal等第三方支付提供商,但是如果您要存储支付卡信息,则需要符合PCI标准 。 阅读这篇关于BC Ferries的文章,他们因为没有及时了解PCI合规性而面临巨额罚款,因此无法理解它是否符合PCI标准。

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