存储私人数据时的安全风险

时间:2009-05-16 07:37:32

标签: security privacy

我必须在我的应用程序中处理一些敏感数据,例如密码,信用卡信息等。 我可能遇到的安全风险是什么?如何避免这些风险?

5 个答案:

答案 0 :(得分:2)

  • 不要存储信用卡信息(在某些司法管辖区,您可能会违反法律,或者至少违反商业协议)

  • 您没有说明您的敏感数据存储在何处,但是通常采用这种方式进行加密。有两种形式对称和不对称。对称意味着您使用相同的密钥进行加密和解密。不对称由公钥/私钥对组成。

  • 密码:只存储密码的盐渍哈希(即不可逆),并与输入密码的类似盐渍哈希进行比较。

答案 1 :(得分:1)

请注意,您确实不应该在网络服务器上以任何形式或形式存储信用卡信息。

在网络环境中执行此操作的一些信息,这是我的背景:

如果网站(或任何应用程序)需要存储卡信息,则应符合PCI DSS(支付卡行业数据安全标准)。除此之外,它要求数据在不可公开访问的单独服务器上加密(IE:不托管站点),并且在它与Web服务器之间有一个单独的防火墙。如果在发生安全漏洞后发生任何欺诈活动,不遵守规定的处罚可能非常大,并且可能包括他们停止与您合作 - 它几乎保留了他们从欺诈中扣除任何损失的权利(来自我的)作为非法人解释)

更多相关信息:https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

显然,与共享主机相比,这可能很昂贵,因为您需要两台服务器和一大堆网络设备。这就是人们不经常这样做的原因。

答案 2 :(得分:0)

我倾向于在信息存储时对信息执行某种形式的可逆加密,例如:

$card = myEncryptionFunction($input);

有关应用程序性质的更多信息不会受到影响。

答案 3 :(得分:0)

我将对数据库数据使用可逆加密。确保此数据也不会渗透到日志文件中,而是记录派生信息。考虑如何处理不同的环境 - 通常您希望在测试环境中使用生产数据。因此,即使您可能考虑将生产数据复制回测试系统,您也应该为敏感部件生成虚假数据。

答案 4 :(得分:0)

已经说过你不应该在你的数据库中存储CC尤其是CVV2信息,尽量避免使用。

如果您存储CC + CVV2,请考虑使用非对称加密并将您的私钥存储在另一台服务器中。否则,可以访问99%数据的攻击者可以访问密钥,整个加密将毫无意义。

密码应以单向散列方式存储。

在完成所有这些之后,您需要确保您的应用程序可以抵御SQL Injeciton,远程代码执行等漏洞。

不要忘记即使攻击者无法读取以前的数据,他们也可以为下一个数据植入后门。