260

这个问题讨论了不同的支付处理器以及它们的成本,但我正在寻找如果我想接受信用卡支付我需要做什么的答案?

假设我需要为客户存储信用卡号,因此依赖信用卡处理器完成繁重工作的明显解决方案不可用。

PCI 数据安全,这显然是存储信用卡信息的标准,有很多通用要求,但是如何实现它们呢?

那么像Visa这样拥有自己最佳实践的供应商呢?

我需要有钥匙扣访问机器吗?如何在物理上保护它免受建筑物中的黑客攻击?或者,如果有人拿到了带有 sql server 数据文件的备份文件怎么办?

备份呢?周围是否有该数据的其他物理副本?

提示:如果您有一个商家帐户,您应该协商他们向您收取“交换加价”而不是分层定价。 通过分层定价,他们将根据使用的 Visa/MC 类型向您收取不同的费率——即。他们向您收取更多附加有丰厚奖励的卡。交换加计费意味着您只需向处理器支付 Visa/MC 向他们收取的费用,外加固定费用。(Amex 和 Discover 直接向商家收取自己的费率,因此这不适用于这些卡。您会发现 Amex 费率在 3% 范围内,而 Discover 可能低至 1%。Visa/MC 在2% 的范围)。 该服务应该为您进行谈判(我没有使用它,这不是广告,我不隶属于该网站,

这篇博客文章提供了处理信用卡的完整纲要(特别是针对英国)。


也许我用错了这个问题,但我正在寻找这样的提示:

  1. 使用SecurIDeToken将额外的密码层添加到物理框。
  2. 确保盒子在带有物理锁或钥匙密码组合的房间内。
4

9 回答 9

237

不久前,我在一家我工作的公司经历了这个过程,我计划很快在我自己的企业中再次经历这个过程。如果您有一些网络技术知识,那确实还不错。否则,您最好使用 Paypal 或其他类型的服务。

该过程首先设置商家帐户并绑定到您的银行帐户。您可能需要向您的银行查询,因为许多主要银行都提供商户服务。您可能能够获得交易,因为您已经是他们的客户,但如果没有,那么您可以货比三家。如果您计划接受 Discover 或 American Express,它们将是分开的,因为它们为他们的卡提供商家服务,没有绕过这个。还有其他一些特殊情况。这是一个申请过程,请做好准备。

接下来,您将需要购买一个SSL 证书,当信用卡信息通过公共网络传输时,您可以使用它来保护您的通信。有很多供应商,但我的经验法则是选择一个在某种程度上是品牌名称的。他们越为人所知,您的客户可能对他们的了解就越好。

接下来,您将需要找到与您的网站一起使用的支付网关。虽然这可以是可选的,具体取决于您的大小,但大多数情况下不会。你将需要一个。支付网关供应商提供了一种与您将与之通信的 Internet 网关 API 进行通信的方式。大多数供应商通过其 API 提供 HTTP 或 TCP/IP 通信。他们将代表您处理信用卡信息。两个供应商是Authorize.NetPayFlow Pro。我在下面提供的链接包含有关其他供应商的更多信息。

怎么办?对于初学者,有一些关于您的应用程序必须遵守传输交易的指南。在进行所有设置的过程中,有人会查看您的网站或应用程序,并确保您遵守指南,例如使用 SSL,并且您有使用条款和政策文档,说明用户提供给您的信息的用途为了。不要从其他网站窃取这个。想出你自己的,如果你需要聘请律师。大多数这些事情都属于迈克尔在他的问题中提供的 PCI 数据安全链接。

如果您打算存储信用卡号码,那么您最好准备好在内部采取一些安全措施来保护信息。确保存储信息的服务器只有需要访问权限的成员才能访问。像任何良好的安全性一样,您可以分层做事。您放置的层数越多越好。如果您愿意,可以使用密钥卡类型安全性,例如SecureIDeToken保护服务器所在的房间。如果您买不起密钥卡路线,请使用两键方法。允许有权进入房间的人注销钥匙,该钥匙与他们已经携带的钥匙一起使用。他们需要两把钥匙才能进入房间。接下来,您使用策略保护与服务器的通信。我的策略是,唯一通过网络与它通信的是应用程序,并且该信息是加密的。服务器不应以任何其他形式访问。对于备份,我使用truecrypt加密备份将保存到的卷。每当数据被删除或存储在其他地方时,您再次使用 truecrypt 来加密数据所在的卷。基本上无论数据在哪里,都需要加密。确保所有获取数据的过程都带有审计线索。使用日志访问服务器机房,尽可能使用摄像头,等等……另一个措施是对数据库中的信用卡信息进行加密。这确保只能在您的应用程序中查看数据,您可以在其中强制执行谁可以查看信息。

我使用pfsense作为我的防火墙。我使用紧凑型闪存卡运行它并设置了两台服务器。一种是用于冗余的故障转移。

我发现了 Rick Strahl 的这篇博客文章,它极大地帮助理解了做电子商务以及通过 Web 应用程序接受信用卡需要什么。

好吧,结果证明这是一个很长的答案。我希望这些提示有所帮助。

于 2008-09-09T19:06:50.930 回答
22

问自己以下问题:为什么要首先存储信用卡号?很有可能你没有。事实上,如果您确实存储了它们并设法让其中一个被盗,您可能会承担一些严重的责任。

我编写了一个存储信用卡号的应用程序(因为交易是离线处理的)。这是一个很好的方法:

  • 获取 SSL 证书!
  • 创建一个表单以从用户那里获取 CC#。
  • 加密 CC# 的一部分(不是全部!)并将其存储在您的数据库中。(我建议中间 8 位数字。)使用强加密方法和密钥。
  • 将 CC# 的其余部分邮寄给处理您的交易的人(可能是您自己),并附上要处理的人的 ID。
  • 稍后登录时,您将输入 ID 和 CC# 的邮寄部分。您的系统可以解密另一部分并重新组合以获得完整号码,以便您可以处理交易。
  • 最后,删除在线记录。我偏执的解决方案是在删除之前用随机数据覆盖记录,以消除取消删除的可能性。

这听起来需要做很多工作,但是由于从不在任何地方记录完整的 CC#,黑客很难在您的网络服务器上找到任何有价值的东西。相信我,这值得安心。

于 2008-09-09T19:48:50.847 回答
18

PCI 1.2 文档刚刚发布。它提供了如何实施 PCI 合规性以及要求的过程。你可以在这里找到完整的文档:

https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

长话短说,为专门用于存储 CC 信息的服务器(通常是 DB 服务器)创建一个单独的网段。尽可能隔离数据,并确保仅存在访问数据所需的最低限度的访问权限。存储时对其进行加密。切勿存储 PAN。清除旧数据并轮换您的加密密钥。

示例不要:

  • 不要让可以在数据库中查找一般信息的同一帐户查找 CC 信息。
  • 不要将 CC 数据库与 Web 服务器放在同一台物理服务器上。
  • 不允许外部(Internet)流量进入您的 CC 数据库网段。

示例执行:

  • 使用单独的数据库帐户来查询抄送信息。
  • 禁止通过防火墙/访问列表到 CC 数据库服务器的所有但需要的流量
  • 将 CC 服务器的访问权限限制为一组有限的授权用户。
于 2008-10-20T19:57:19.700 回答
15

我想添加一个您可能希望考虑的非技术评论

我的一些客户经营电子商务网站,其中包括一些拥有中等规模商店的客户。这两者,虽然他们当然可以选择不实施支付网关,但他们获取 cc 号码,将其临时加密在线存储并手动处理。

他们这样做是因为欺诈的高发率和手动处理允许他们在填写订单之前进行额外的检查。有人告诉我,他们拒绝了超过 20% 的交易——手动处理肯定需要额外的时间,在一种情况下,他们有一名员工除了处理交易什么都不做,但支付工资的成本显然低于他们的如果他们只是通过在线网关传递 cc 号码,就会曝光。

这两个客户都在提供具有转售价值的实物商品,因此特别容易受到影响,对于欺诈性销售不会导致任何实际损失的软件等项目,您的里程会有所不同,但值得考虑的是在线网关的技术方面如果实施这样真的是你想要的。

编辑:自从创建这个答案以来,我想添加一个警示故事,并说这是一个好主意的时候已经过去了。

为什么?因为我知道另一位采用类似方法的联系人。卡详细信息被加密存储,网站通过 SSL 访问,处理后立即删除号码。你觉得安全吗?

没有——他们网络上的一台机器被密钥记录木马感染了。结果,他们被确定为数起信用卡伪造分数的来源——因此被处以巨额罚款。

因此,我现在从不建议任何人自己处理信用卡。此后,支付网关变得更具竞争力和成本效益,欺诈措施也得到了改善。现在的风险已经不值得了。

我可以删除这个答案,但我认为最好保留编辑作为警示故事。

于 2009-04-20T07:08:27.753 回答
8

请记住,使用 SSL 将卡号从浏览器发送到服务器就像当您将卡交给餐厅的收银员时用拇指遮住您的信用卡号:您的拇指 (SSL) 会阻止餐厅中的其他顾客(网络)从看到卡,但是一旦卡在收银员(网络服务器)手中,卡就不再受到 SSL 交换的保护,收银员可以用那张卡做任何事情。访问已保存的卡号只能由 Web 服务器上的安全性阻止。即,网络上的大多数卡片盗窃不是在传输过程中完成的,而是通过突破糟糕的服务器安全性和窃取数据库来完成的。

于 2010-06-27T00:16:51.547 回答
5

为什么要打扰 PCI 合规性?充其量你会削减你的手续费的一小部分。这是其中一种情况,您必须确保这是您想要在开发前期和随着时间的推移跟上最新要求的时间所做的事情。

在我们的案例中,使用订阅型网关并将其与商家帐户配对是最有意义的。订阅精明的网关允许您跳过所有 PCI 合规性,只做正确的交易处理。

我们使用 TrustCommerce 作为我们的网关,并对他们的服务/定价感到满意。他们有多种语言的代码,使集成变得非常容易。

于 2009-04-28T21:29:17.590 回答
3

请务必掌握 PCI 所需的额外工作和预算。PCI 可能需要巨额的外部审计费用和内部努力/支持。还要注意可以单方面对您征收的罚款/处罚,通常与“犯罪”的规模严重不成比例。

于 2009-09-15T11:02:52.087 回答
2

整个过程有很多。最简单的方法是使用类似于贝宝的服务,这样您就不会真正处理任何信用卡数据。除此之外,要获得批准在您的网站上提供信用卡服务还需要做很多事情。您可能应该与您的银行以及签发您的商家 ID 的人员交谈,以帮助您设置流程。

于 2008-09-09T01:56:34.900 回答
2

正如其他人所提到的,进入这一领域的最简单方法是使用PaypalGoogle checkoutNochex。但是,如果您打算进行大量业务,您可能希望查找“升级”到更高级别的站点集成服务,例如WorldPayNetBanx(英国)Neteller(美国)。所有这些服务都相当容易设置。而且我知道 Netbanx 可以方便地集成到一些现成的购物车解决方案中,例如Intershop(因为我写了其中一些)。除此之外,您正在考虑与银行系统(及其 APAX 系统)直接集成,但这很难,此时您还需要向信用卡公司证明您正在安全地处理信用卡号码(如果你每月没有拿走 10 万美元的价值)。

从头到尾工作的成本/收益是早期选项更容易(更快/更便宜)设置,让您为每笔交易支付相当高的手续费。后期的设置成本要高得多,但从长远来看,您支付的费用会更少。

大多数非专用解决方案的另一个优点是您不需要保护加密的信用卡号码的安全。那是别人的问题:-)

于 2008-09-09T10:48:59.600 回答