我即将继承并在一个设计非常糟糕的小型企业零售网站上工作。除此之外,最关心的是当前的信用卡处理。
目前,所有者从在线订单表格中检索信用卡信息(姓名,号码,CVV2和到期日期),并以明文形式将所有信息保存在MySQL数据库中。然后会将通知发送到他已订购的电子邮件中。此后,他有一个管理后端页面,他查看了他用来与自己的商家离线处理的订单和信用卡信息。
从后端页面检索信息后,会立即删除信用卡号和CVV2(自动调用PHP脚本)。如果在7天内未访问该页面,也会删除该信息。因此,在交易处理之前,所有信息都有可能在数据库中以明文形式存储七天。
这似乎不是一个好的设计,可能是非法的。如果这是非法的,我将不得不打破这个,因为他还没有意识到这一点。
我的问题:除了不安全之外,这是非法还是违反使用条款(PCI DSS)?而且,如果是这样,我怎么能向他证明这一点,以便他允许我改变他的方式(显然,我不想把我的手放到非法的东西。而且,有时使用条款的措辞可以看似主观)?最后,解决此问题的最佳方案是什么(第三方在线商家,符合PCI DSS标准,还是其他方式)?
答案 0 :(得分:21)
这违反了PCI DSS。您不仅存储了您不应存储的信息(CVV),而且还没有加密信用卡号(也是违规行为)。
更糟糕的是,他违反了Visa和MasterCard指南,该指南规定所有在线交易必须使用符合ECI标准的设备或软件处理和互联网订单必须有单独的商家帐户。他们的信用卡终端绝对不符合ECI标准。他们需要获得一个新的商家帐户,并使用像Authorize.Net这样的支付网关来处理这些订单。
修改强>
由于我怀疑网站所有者实际上无法获得新的商家帐户或实施支付网关,因此最好的办法是使用双向加密来存储此信息。然后确保用于检索信用卡信息的页面已加密(SSL证书),因此信息从端到端是安全的。
我强烈建议您使用互联网商家帐户并使用像Authorize.Net这样的支付网关。除了符合PCI和ECI并且只是聪明的方式之外,企业不仅失去了他们的商家帐户而且被列入黑名单并且禁止再次拥有真正的商家帐户的可能性非常高。只需要为他们的商家帐户提供商进行一次退款即可了解他们正在做的事情以及难以启动。
答案 1 :(得分:4)
这是对PCI规则的严重违反。您可以在此处获取文档:https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml 像Google Checkout这样的第三方或类似的东西会很聪明。成为PCI兼容是一个令人头疼的问题,涉及年度审查(可能是自我评估),其中可能包括渗透测试等。如果您真的检查过,他可能根本不需要访问信用卡信息,只需要交易ID。您不仅需要加密数据,还必须有一个精心设计的方案来保护加密密钥。这比小企业想要进入的要大得多。上面的一些建议听起来不错,但它不符合PCI规范。阅读文档,您很快就会发现这是一项艰巨的任务。我目前支持内部PCI兼容系统,并且不得不花费大量精力来达到标准。我们还必须进行一些网络更改。将业务转换为第三方会更便宜。
答案 2 :(得分:2)
有许多第三方支付服务提供商可以处理所有安全和合规问题。
对于任何中小型企业而言,这是一项绝对应该外包给具有专业知识的人。
答案 3 :(得分:2)
使用第三方信用卡处理网关无需在客户端服务器上存储信用信息 - POST的cc信息被传递到处理网关,处理网关返回可用于记录保存的事务ID你的客户。
信用卡支付网关由Authorize.net,LinkPoint Central等公司提供 - 甚至PayPal也会进入游戏。所有主要网关都有现有代码,用于将购物车与大多数流行的Web编程平台(.NET,PHP,Java等)集成。此外,大多数主要购物车都支持开箱即用的主要网关,或者至少为大多数网关提供可安装的模块。
因此,您的客户应该获得互联网支付网关设置,您应该将他们现有的代码与网关集成。
答案 4 :(得分:1)
正确保护支付数据是一个复杂的主题。即使是非常大的公司,也有时会从他们的系统中窃取大量信用卡。
至少应考虑以下步骤:
答案 5 :(得分:0)
这绝对违反了PCI规则。但是,对存储的数据添加加密应该不难,特别是如果很少有人需要查看它。
在为第三方信用卡交易处理公司工作之后,如果他们的系统那么糟糕,我强烈推荐它。但是,您仍然需要加密该信息,或者在将信息发送到TPP后根本不存储它。 TPP真正适用于商家,因此他们可以帮助您解决任何合规问题,并帮助您获得最佳的互换率。