将CreditCard信息存储到DataBase的最佳实践

Gar*_*ero 46 mysql database security database-design credit-card

在我的国家,在线支付并不是一件旧事,我第一次看到一个直接向当地银行账户付款的网络应用程序是去年.

所以,我是一个新手编码网络支付系统.

我的问题是,将信用卡信息存储到数据库中的最佳做法是什么?

我有很多想法:加密信用卡,数据库安全限制等.

你做了什么?

Dea*_*ing 85

不要做

涉及的风险太大,您通常需要进行外部审计,以确保您遵守所有相关的当地法律和安全惯例.

有许多第三方公司为您做这件事,他们已经完成了确保他们的系统安全,遵守当地法律等方面的所有麻烦.我过去使用过的美国的一个例子是authorize.net.有些银行还拥有可以存储信用卡数据和处理付款的系统.

我意识到你所在的国家可能没有像美国那样严格的法律,但在我看来,这不是推销自己的国家的借口.当你处理其他人的钱时,风险太大,无法保证.

  • 我什至认为保存信用卡号码是非法的(荷兰)。因此,我们在 xml-transaction-logs 中用 ************ 混淆了数字。 (2认同)

Ala*_*lan 33

为此,我建议采用全面的分层方法.

首先,存储信用卡信息应该是一种选择.

其次,应使用强大的加密形式安全地存储数据.我推荐使用256位密钥大小的AES.确保在选择密钥时,使用整个密钥空间(只是使用随机生成的字母数字符号字符串作为密钥,这是一个新手错误).

第三,需要正确保护AES密钥.不要在代码中嵌入值.如果您使用的是Windows,请考虑使用DPAPI.

第四,您需要设置数据库权限,以便应用程序和计算机可以根据需要进行访问.

第五,保护连接字符串到您的数据库.

第六,确保任何可以访问信用卡数据的应用程序都能正确保护它.

  • @Sumit gupta没有人可以告诉你所有国家的法律,毕竟SO不是倡导者的q/a. (2认同)

Wal*_*shi 23

在miniumum遵循PA DSS(付款申请数据安全标准).更多信息可以在这里找到:

https://www.pcisecuritystandards.org/security_standards/pa_dss.shtml

看看PCI DSS也是明智的,可以在这里找到:

https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

  • *facepalm*,我是如此愚蠢,因为没有立即想到这一点.您一定要看PA DSS和PCI标准. (2认同)