23

我即将继承并在一个设计非常糟糕的小型企业零售网站上工作。除其他外,最大的担忧是当前的信用卡处理。

目前,所有者从在线订单中检索信用卡信息(姓名、号码、CVV2 和到期日期),并将所有这些信息以纯文本形式保存在 MySQL 数据库中。然后有人订购的通知会发送到他的电子邮件。此后,他有一个管理后端页面,他可以查看订单和信用卡信息,他使用这些信息与自己的商家进行离线处理。

从后端页面检索信息后,信用卡号和CVV2立即被删除(PHP脚本自动调用)。如果在 7 天内未访问该页面,该信息也会被删除。因此,在交易处理之前,所有信息都有可能以纯文本形式保存在数据库中 7 天。

这似乎不是一个好的设计,可能是非法的。如果这是非法的,我将不得不向他打破这个,因为他还没有意识到这一点。

我的问题:除了不安全之外,这是否违法或违反使用条款 (PCI DSS)?而且,如果是这样,我该如何向他证明,以便他允许我改变他的方式(显然,我不想把手伸进违法的事情中。另外,有时使用条款的措辞可以看起来很主观)?最后,解决此问题的最佳选择是什么(第 3 方在线商家、符合 PCI DSS 或其他)?

4

6 回答 6

21

这违反了 PCI DSS。您不仅存储了您不应该存储的信息 (CVV),而且还没有加密信用卡号(也是违规行为)。

更糟糕的是,他违反了 Visa 和 MasterCard 准则,该准则规定所有在线交易必须使用符合 ECI 的设备或软件进行处理,并且互联网订单必须有一个单独的商家账户。他们的信用卡终端绝对不符合 ECI,因为没有。他们需要获得一个新的商家帐户并使用 Authorize.Net 之类的支付网关来处理这些订单。

编辑

由于我怀疑网站所有者实际上会费心去获得一个新的商家帐户或实施支付网关,因此最好的选择是使用两种方式加密来存储此信息。然后确保他们用于检索信用卡信息的页面是加密的(SSL 证书),因此信息从端到端是安全的。

我强烈建议您获得一个 Internet 商家帐户并使用 Authorize.Net 之类的支付网关。除了符合 PCI 和 ECI 并且只是明智的选择之外,企业不仅失去其商家帐户而且被列入黑名单并被禁止再次拥有真正的商家帐户的可能性非常高。他们的商家帐户提供商只需进行一次退款即可了解他们在做什么并开始麻烦。

于 2010-02-10T22:16:35.193 回答
4

这是对 PCI 规则的重大违反。您可以在此处获取文档:https ://www.pcisecuritystandards.org/security_standards/pci_dss.shtml 使用 Google Checkout 之类的第三方会是明智之举。成为 PCI 合规是一件很头疼的事情,并且涉及年度审查(可能是自我评估),其中可能包括渗透测试等。如果您真的检查过,他可能根本不需要访问信用卡信息,只需交易 ID。您不仅需要加密数据,还必须有一个精心设计的方案来保护加密密钥。这比小企业想要进入的要大得多。上面的一些建议听起来不错,但它不符合 PCI 规范。阅读文档,您会很快发现这是一项艰巨的任务。我目前支持内部 PCI 兼容系统,并且必须花费大量精力来使其达到标准。我们还必须进行一些网络更改。企业转换为第三方会更便宜。

于 2010-02-10T23:36:03.127 回答
2

有许多第三方支付提供商可以为您处理所有安全和合规问题。

对于任何中小型企业来说,这是一项绝对应该外包给具有专业知识的人的职能。

于 2010-02-10T22:16:06.473 回答
2

使用第 3 方信用卡处理网关无需在客户端服务器上存储信用信息 - POST 后的 cc 信息被传递到处理网关,该网关返回可用于客户记录保存的交易 ID。

信用卡支付网关由 Authorize.net、LinkPoint Central 等公司提供——甚至 PayPal 也在参与其中。所有主要网关都有现有代码,用于将购物车与大多数流行的 Web 编程平台(.NET、PHP、Java 等)集成。此外,大多数主要购物车都支持开箱即用的主要网关,或者至少为大多数网关提供可安装模块。

因此,您的客户应该获得一个互联网支付网关设置,并且您应该将他们现有的代码与网关集成。

于 2010-02-10T22:17:51.583 回答
1

正确保护支付数据是一个复杂的话题。即使是非常大的公司有时也会从他们的系统中窃取大量信用卡。

至少,以下是要考虑的步骤:

  • 确保在线订单使用 HTTPS 来捕获数据。
  • 如果 DB 和 Web 服务器是不同的盒子,请确保它们之间的安全路径。
  • 加密数据库中的支付数据。MySQL 参考
  • 确保对后端网页的强访问控制(外部世界是否可以物理访问?是否需要强密码?是 HTTPS 吗?)
  • 确保没有最终将支付信息写入文件系统的日志(例如调试日志)。
于 2010-02-10T22:19:30.643 回答
0

这绝对违反了PCI规则。但是,为存储的数据添加加密应该不难,尤其是在很少有人需要查看它的情况下。

在第三方信用卡交易处理公司工作过,如果他们的系统那么糟糕,我强烈推荐它。但是,您仍然需要对该信息进行加密,或者在将其发送到 TPP 后根本不存储它。TPP 确实适用于商家,因此他们可以帮助您解决任何合规问题并帮助您获得最佳交换率。

于 2010-02-10T22:13:30.597 回答