我可以在数据库中保存信用卡密码吗?

Posted

技术标签:

【中文标题】我可以在数据库中保存信用卡密码吗?【英文标题】:Can I save credit card secret code in the database? 【发布时间】:2011-04-26 01:48:56 【问题描述】:

我需要将用户的信用卡号和密码以明文形式保存在数据库中(显然是背后的共识),以便从服务器进行自动操作。

有什么问题吗?

我需要注意什么?

【问题讨论】:

PCI DSS 禁止存储 CVV 代码(假设这就是您所说的“秘密代码”)。 @Jeff 如果你能证明它是必需的,他们会在某些情况下允许它。 @user。对不起,但你错了。它不能在授权后存储。我致力于构建符合 PCI 的支付系统 【参考方案1】:

PCI-DSS(支付卡行业数据安全标准)绝对禁止将卡详细信息以纯文本形式保存到磁盘。此外,3 位数的卡安全代码(Amex 上的 4 位数)无法在授权后存储,理想情况下,您应该只将其保存在内存中,直到授权完成。

PCI 声明您可以最多以纯文本形式存储前六位和后四位。打印收据的要求不同,最多只能打印最后四位。

如果您想在保存细节之前尝试加密细节,那么 PCI 不会变得更容易。你需要考虑key management, key rotation, split keys。此外,您需要通过yearly onsite audits 您的内部网络安全和quarterly audits 您的公共网络。净成本很容易达到数千美元。

总结。想都别想!

【讨论】:

【参考方案2】:

我见过的大多数信用卡处理协议都不允许您存储卡背面的代码。

存储纯文本信用卡号还有其他安全隐患,但您的协议通常明确禁止存储代码。你需要阅读你的文章以确保你能做到这一点。

至于存储信用卡号,这通常也是一个非常糟糕的主意。如果您的数据库遭到破坏,您将承担责任,并且可能会花费您很多钱。

除非您有充分的理由存储信用卡号并且有一个非常优秀的团队致力于安全工作,否则我不建议您存储任何信用卡数据。

【讨论】:

【参考方案3】:

简短的回答,不,坏主意。您必须考虑很多因素,这不是一个好主意。没关系,大多数协议都不允许您这样做。

Authorize.net(只是一个示例)将存储信用卡信息,以便您进行重新计费。这是一个运行良好的简单系统,可以让您免除任何与存储相关的问题。

【讨论】:

+1。存储信用卡信息的可怕想法 TJX 不得不支付 1000 万美元,因为他们的数据库被黑了。【参考方案4】:

CVV 代码用于验证持卡人在原始交易时是否持有该卡。一旦你验证了,你就不需要它了,所以不要存储它。

我知道的所有商家帐户协议都明确规定您不得存储 CVV。这是出于安全原因。

在每笔自动交易中使用 CVV 代码就像是说您的自动系统在交易时拥有这张卡,我猜不是这样。

第一次验证后就不需要它了。绝对不要储存。

您不能以纯文本形式存储信用卡号。

【讨论】:

最重要的是,一些发卡机构使用每 5 分钟更换一次的轮换 CVV。所以存储它们没有任何意义。【参考方案5】:

对于@Jeff,你应该听。如果您要处理信用卡,您应该(我认为必须,但 IANAL)遵守Payment Card Industry Data Security Standard。

【讨论】:

以上是关于我可以在数据库中保存信用卡密码吗?的主要内容,如果未能解决你的问题,请参考以下文章

可以在 Firefox 中更改“保存的密码”样式吗?

如何将信用卡数据保存在数据库中?

我们可以在我们自己的数据库中存储美国客户的 ACH 详细信息吗?

在美国为网站提供信用卡收单和贝宝的解决方案

Google Analytics - 它可以收集表单数据吗?

通过双向加密将信用卡数据保存在移动设备上