我想允许我的客户用户输入他们的信用卡信息,这样我就可以每月向他们收费。
我不知道应该如何保存此信息?
应该将其保存在MySQL数据库(“用户”表)中还是这种信息过于敏感而需要存储在其他位置?
我对此没有经验,如果有人可以建议我如何实现这一目标,我将感到非常高兴。
谢谢。
如上所述,请勿将信用卡信息存储在数据库中。这是麻烦的秘诀。这样做将使您成为黑客的极具吸引力的目标,并且,如果黑客成功地将其收回,则可能会终止您的业务并有可能破坏您的生活以及其信用卡号被盗的人们的生活。
话虽如此,这里要考虑三件事:
1)最好的选择是使用提供重复计费的支付处理器/支付网关。一个示例是Authorize.Net的自动定期计费服务。设置订阅后,他们将每月自动为您自动向用户收费,并告知您交易结果。它为您节省了大量的工作,并减轻了您存储信用卡信息的责任。
2)如果您确实存储商店信用卡号,则必须遵循PCI准则。这些准则由支付卡行业制定,定义了您可以做什么和不能做什么。它还定义了必须如何存储信用卡信息。您将需要对信用卡号进行加密,并且您应该(但不是必须)对相关信息(到期日期等)进行加密。您还需要确保Web服务器和网络安全。不符合PCI法规将导致您失去商家帐户,并被禁止永远拥有真实的商家帐户。那将限制您使用不太灵活的第三方处理器。请记住,PCI准则是一个很好的开始,但是对于在线安全而言,这几乎不是“如何做”。您的目标将是超出建议(很多)。
3)州和国家/地区特定法律取代PCI合规性。如果您遭到破坏并且信用卡号被盗,则可能面临刑事诉讼。法律因州而异,并且不断变化,因为立法者才刚刚开始意识到这件事有多严重。
就加密而言,请确保您阅读了哪些加密算法是安全的并且尚未破解。Blowfish是一个好的开始,如果您使用PHP,则建议使用mcrypt库(示例)。