4

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

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

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

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

4

6 回答 6

5

阅读PCI 要求。一切都会在那里。

事实上,你必须跟随他们。

于 2008-10-08T22:47:36.020 回答
3

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

2 - 除非您确实需要,否则不要收集其他敏感信息

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

于 2008-10-08T23:01:31.330 回答
3

在操作系统和物理安全方面使用激进的标准来保护主机系统,例如NSA 指南

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

进行防御性编程以避免 SQL 注入攻击和类似的攻击。

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

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

请注意并遵守有关处理这些数据的所有当地法律......那里有很多。

保留一些信封,以便在发生违规事件时通知您的客户。如果您丢失了 2600 万客户的信息,您可能无法获得足够的信封来满足通知他们违规的法定时限。

于 2008-10-08T23:27:01.027 回答
1

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

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

于 2008-10-08T22:55:05.583 回答
1

不同的应用程序需要不同的 PCI 标准合规性。如果您的应用程序只是收集 CC 号码,然后将它们提交给符合 PCI 的第 3 方支付网关,那么您的合规性要求并不算太差 - 只要您不存储卡号或 CVV。

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

PCI 标准文档非常详细,但这完全取决于您的应用程序的要求,即您需要什么级别的合规性。

于 2008-10-08T23:22:54.657 回答
0

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

于 2008-10-08T23:51:06.207 回答