在我的国家,在线支付并不是一件古老的事情,我第一次看到web应用程序直接向当地银行账户付款是在去年。
所以,我是一个新手编码网络支付系统。
我的问题是,将信用卡信息存储到数据库中的最佳实践是什么……
我有很多想法:信用卡加密,数据库安全限制,等等。
你做了什么?
发布于 2010-06-09 07:59:10
不做IT
涉及的风险实在太大了,您通常需要接受外部审计,以确保您遵守所有相关的当地法律和安全实践。
有许多第三方公司为你做这件事,他们已经经历了所有的麻烦,以确保他们的系统是安全的,他们遵守当地法律,等等。我过去在美国使用过的一个例子是authorize.net。一些银行也有系统,您可以连接到这些系统来存储信用卡数据和处理支付。
我知道你所在的国家可能没有美国那么严格的法律,但在我看来,这不能成为你制定自己法律的借口。当你在处理别人的钱时,风险太大了,无法保证。
发布于 2010-06-09 08:00:32
2020年,使用Stripe,避免自己存储支付信息。
历史答案:
为此,我推荐一个全面的、分层的方法。
首先,存储信用卡信息应该是一个选项。
其次,数据应该安全地存储,使用强大的加密形式。我推荐256位密钥大小的AES。确保在选择密钥时,使用整个密钥空间(只使用随机生成的字母数字符号字符串作为密钥是一个新手的错误)。
第三,AES密钥需要得到适当的保护。不要在代码中嵌入值。如果您使用的是windows,请考虑使用DPAPI。
第四,您需要设置数据库权限,以便应用程序和计算机可以在需要了解的基础上进行访问。
第五,保护到数据库的连接字符串。
第六,确保任何可以访问信用卡数据的应用程序都将适当地保护这些数据。
发布于 2010-06-09 07:57:58
在miniumum遵循PA DSS (支付应用程序数据安全标准)。更多信息可以在这里找到:
https://www.pcisecuritystandards.org/security_standards/pa_dss.shtml
此外,明智的做法是查看PCI DSS,它可以在以下位置找到:
https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml
https://stackoverflow.com/questions/3002189
复制相似问题