存储敏感数据的最佳方式

时间:2012-05-01 01:54:52

标签: php mysql file store

存储敏感数据的最佳方式是什么(例如:信用卡)?我需要能够获得原始文本,所以我不能哈希它。我有一些想法。

  1. 将MySQL与AES_ENCRYPT()AES_DECRYPT()

  2. 一起使用
  3. 使用fwrite()

  4. 将其加密存储在文件中

    现在我知道MySQL的加密和解密功能不安全,我可以在PHP中使用哪种加密方便,快速和安全吗?

2 个答案:

答案 0 :(得分:7)

不要在您的服务器上存储信用卡号码!在您的数据库中包含此信息会使您成为黑客极具吸引力的目标。如果您认为可以保护它,请再想一想。黑客已经破坏了具有出色安全性的公司的安全性。你的安全性不会更好。

您最好的选择是使用像Authorize.Net's Customer Information Manager (CIM)这样的服务,它允许您在其服务器上创建付款资料(即他们存储信息)然后您收取费用。这样,您可以在需要时向客户收取费用,但无需存储信用卡信息。

如果您坚持自己动手,则必须遵循in this guide概述的PCI规则。但您可能会发现this guide更容易理解。转到第14页了解您需要了解的内容。基本上你可以存储它,但它必须根据PCI标准加密。

仅供参考,您的服务器和网络也必须安全。如果拼图的任何部分不符合PCI,则无法存储信用卡号。这排除了大多数共享托管公司的解决方案。

答案 1 :(得分:3)

通常,存储卡号的唯一原因是订阅/定期付款。你会发现好的支付服务提供商提供了一个令牌来存储而不是卡的细节,然后你再次将它推给他们。

查看PHP mcrypt库,但是如果您确实需要加密/解密卡号并记住,请永远不要将3位数的安全码存储在任何地方。永远。