我致力于公司的PCI DSS合规性。经过一些研究,我发现存储任何信用卡数据都不是一个好主意,因为这会使事情变得更加复杂。
我找到了一个支持提供商,它提供了一个安全数据保险库以及一个标记化解决方案。因为我不想审核大型解决方案的所有子模块, 我想要写一个替换信用卡的透明代理服务器 (通过正则表达式查找)并用令牌替换它,一旦我想将信用卡发送给第三方,我就通过代理发送它,代理将令牌更改回信用卡。这应该会降低安全编码要求,包括对代理的代码审核,因为所有其他代码都会被令牌攻击。
我使用ASP.NET MVC / Webforms和WCF。完成这样的事情的最佳方法是什么?我想写一个HttpFilter / ISAPI来完成这项工作。
也许已经有这样的产品?这个想法有意义吗?
答案 0 :(得分:2)
我会警告不要这样做。
1)正则表达式捕获所有可能的CC可能过于复杂或者在某些情况下可能不起作用(破折号,空格,点,CC数字中的错误)。 2)您可能会捕获看似CC号但不是(特别是二进制数据)的数据的误报 3)您可能无法捕获错误输入的CC号码 4)感觉"错
我建议您更进一步使用您的支付处理器并找到一个不仅提供符合PCI标准的处理器。当需要从用户捕获CC详细信息时,标记化的CC存储空间,以及您重定向到的CC捕获页面。这样您的应用就无需执行任何操作
答案 1 :(得分:1)
您可能需要查看Authorize.Net's Customer Information Manager (CIM) API之类的内容,它允许您创建存储在Authorize.Net服务器上的付款配置文件,并使用配置文件ID(a.k.a.令牌)在将来的日期对其收费。
答案 2 :(得分:1)
PCI安全标准委员会已经发布了关于标记化的指南。您可以在此处找到它:https://www.pcisecuritystandards.org/documents/Tokenization_Guidelines_Info_Supplement.pdf
值得注意的是(无论如何你似乎都知道)虽然你可以使用标记化来减少PCI的影响,但它不太可能将你的所有系统从必须遵守至少标记化代理将在范围内。