处理敏感信息的最佳做法是什么?

时间:2008-10-08 22:43:31

标签: security credit-card

我目前正在为客户创建一个应用程序,允许他们自动向客户收取信用卡账单。

我很好奇是什么最佳做法安全地存储和访问信用卡信息,以及任何其他敏感信息,如社会安全号码,帐号等等上。

假设某些类型的加密将被采用,但在我深入挖掘之前,我想看看其他人如何处理这些类型的要求。

这并不重要,但我们正在使用Microsoft SQL Server为数据库设计软件,并使用C#和ASP.NET。

6 个答案:

答案 0 :(得分:5)

阅读PCI requirements。一切都将在那里。

实际上,必须关注它们。

答案 1 :(得分:3)

1 - 除非你真的需要它们,否则甚至不收集SSN。除非你是银行或政府,否则你很可能没有。

2 - 除非你真的需要

,否则不要收集其他敏感信息

3 - 使用任何适当的控件(数据库的独立机器,防火墙,访问控制等)来实现您真正需要保留的东西。

答案 2 :(得分:3)

使用积极的标准来保护主机系统在操作系统和物理安全方面的安全,例如NSA guidelines

将数据库放在与Web服务器或其他功能不同的系统上,以防止物理访问和权限升级漏洞利用。

防御性地编程,以避免SQL注入攻击和类似攻击。

开发时,首先考虑安全性。之后回来并应用安全性将是困难且容易出错的。

尝试分离应用程序的各个部分...即不要使用相同的查看器或控制器进行“公共”访问和“私人”访问。

请注意并遵守有关处理此数据的所有当地法律......其中有很多。

保持supply of envelopes左右,以便在发生违规时通知您的客户。如果您丢失了2600万客户的信息,您可能无法获得足够的信封来满足通知他们违规的法定时间。

答案 3 :(得分:1)

不 - 我的意思是,你真的需要吗?

有一个强大的第三方支付服务市场,他们可以为您收到详细信息,只需在付款后向您发送消息。有像PayPal这样的替代品,您可以使用MD5或SHA1保护数据 - 丢弃琐事,例如精确的数字字符串。

答案 4 :(得分:1)

不同的应用需要不同的PCI标准。如果您的应用程序只是收集CC编号,然后将其提交给第三方PCI兼容支付网关,那么您的合规性要求也不会太差 - 只要您不存储卡号或CVV。

在记录方面,您应该“消除”信用卡号码,例如保留前6位数字和后3位数字但隐藏中间数字。不要记录CVV。

PCI标准文档非常详细,但这完全取决于您的应用程序对您所需的合规程度的要求。

答案 5 :(得分:0)

OWASP威胁密切相关,并确切知道如何在您的应用程序和框架中对抗它们。很难相信有多少人对SQL注入和跨站点脚本攻击采用愚蠢的半解决方案。