付款处理程序 - 如果我想在我的网站上接受信用卡,我需要知道什么?

时间:2008-09-09 01:50:46

标签: security e-commerce pci-dss

This question讨论了不同的支付处理器及其成本,但我正在寻找如果我想接受信用卡付款需要做什么的答案?

假设我需要为客户存储信用卡号码,因此无法获得依赖信用卡处理器进行繁重工作的明显解决方案。

PCI Data Security,显然是存储信用卡信息的标准,有一堆一般要求,但是how does one implement them

那些有自己最佳实践的供应商,比如Visa呢?

我是否需要使用密钥卡访问本机?那么在物理上保护它免受建筑物中的黑客攻击呢?或者甚至如果有人手上有sql server数据文件的备份文件呢?

备份怎么样?是否有其他物理副本的数据?

提示:If you get a merchant account, you should negotiate that they charge you "interchange-plus" instead of tiered pricing.通过分层定价,他们会根据使用的Visa / MC类型向您收取不同的费率 - 即。他们会向你收取额外费用大额奖励的卡。 Interchange plus billing意味着您只需向处理器支付Visa / MC收取的费用,外加固定费用。 (Amex和Discover直接向商家收取费用,因此不适用于这些卡。您会发现Amex费率在3%范围内且Discover可能低至1%.Visa / MC在2%的范围)。 This service is supposed to do the negotiation for you(我没有使用它,这不是广告,我不隶属于该网站,但非常需要此服务。)

此博客文章提供complete rundown of handling credit cards(特别针对英国)。


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

  1. 使用SecurIDeToken在物理盒中添加其他密码图层。
  2. 确保该盒子位于具有物理锁或键码组合的房间内。

9 个答案:

答案 0 :(得分:235)

我很久以前就和我工作的公司一起经历了这个过程,我计划很快再次与自己的公司合作。如果你有一些网络技术知识,那真的不是那么糟糕。否则,您最好使用Paypal或其他类型的服务。

此过程首先获得 merchant account 设置并绑定到您的银行帐户。您可能需要咨询您的银行,因为许多主要银行都提供商家服务。您可以获得优惠,因为您已经是他们的客户,但如果没有,那么您可以到处购物。如果您打算接受Discover或American Express,那么这些将是独立的,因为它们为他们的卡提供商家服务,没有解决这个问题。还有其他特殊情况。这是一个准备好的申请流程。

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

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

现在怎样?对于初学者,有关于您的应用程序必须遵守什么来传输交易的指南。在设置所有内容的过程中,有人会查看您的网站或应用程序,并确保您遵守指南,例如使用SSL,并且您有使用条款和政策文档,了解用户使用的信息是什么对于。不要从其他网站窃取这个。如果你需要,请自己动手,聘请律师。其中大部分都属于迈克尔在他的问题中提供的PCI数据安全链接。

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

我使用pfsense作为防火墙。我从一个小型闪存卡上运行它,并设置了两个服务器。一个是冗余故障转移。

我发现Rick Strahl的这个blog post非常有助于了解电子商务以及通过网络应用程序接受信用卡需要做些什么。

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

答案 1 :(得分:22)

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

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

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

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

答案 2 :(得分:17)

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

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

长话短说,为任何专用于存储CC信息的服务器(通常是DB服务器)创建一个单独的网段。尽可能隔离数据,并确保仅存在访问数据所需的最小访问权限。存储时加密它。永远不要存放PAN。清除旧数据并旋转加密密钥。

示例不做:

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

示例Dos:

  • 使用单独的数据库帐户查询CC信息。
  • 通过防火墙/访问列表
  • 禁止向CC数据库服务器发送所有必需的流量
  • 限制对一组有限授权用户的CC服务器访问。

答案 3 :(得分:15)

我想添加您可能想要考虑的非技术性评论

我的一些客户经营着电子商务网站,其中包括一对拥有中等规模商店的网站。这两个,虽然他们肯定可以实现支付网关选择不是,他们采取cc号码,存储它临时加密在线并手动处理。

他们这样做是因为欺诈的发生率很高,而人工处理允许他们在下订单之前进行额外的检查。我被告知他们拒绝了超过20%的交易 - 手工处理肯定需要额外的时间,在一个案例中,他们有一个员工除了处理交易之外什么都不做,但支付他的工资的成本显然低于他们的工资。如果他们只是通过在线网关传递cc号码,那么曝光。

这两个客户都提供具有转售价值的实物商品,因此特别暴露,对于软件等欺诈性销售不会导致任何实际损失的物品,您的里程会有所不同,但值得考虑以上技术方面的问题。如果实施这样的网络网关真的是你想要的。

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

为什么呢?因为我知道另一个采取类似方法的联系人。卡详细信息以加密方式存储,网站由SSL访问,并且数据在处理后立即删除。你认为安全吗?

没有 - 他们网络上的一台机器被一个密钥记录木马感染了。因此,他们被确定为几个分数信用卡伪造的来源 - 并因此受到巨额罚款。

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

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

答案 4 :(得分:8)

请注意,使用SSL将卡号从浏览器发送到服务器就像将信用卡交给餐厅的收银员一样用拇指盖住信用卡号:您的拇指(SSL)会阻止其他客户在餐厅(网)看到卡,但一旦卡在收银员(网络服务器)的手中,该卡不再受SSL交换的保护,并且收银员可以使用该卡做任何事情。只能通过Web服务器上的安全性来停止访问保存的卡号。也就是说,网络上的大多数盗窃都不是在传输过程中完成的,它们是通过破坏糟糕的服务器安全性和窃取数据库来完成的。

答案 5 :(得分:5)

为什么要考虑PCI合规?充其量只能减少处理费用的一小部分。在这种情况下,您必须确保这是您希望在开发前期和随着时间推移以满足最新要求的时间。

在我们的案例中,最有意义的是使用订阅 - savy网关并将其与商家帐户配对。订阅savy网关允许您跳过所有PCI合规性,除了正确处理交易之外什么都不做。

我们使用TrustCommerce作为我们的网关,并对他们的服务/定价感到满意。他们拥有一堆语言代码,使集成变得非常简单。

答案 6 :(得分:3)

务必掌握PCI所需的额外工作和预算。 PCI可能需要巨额外部审计费用和内部工作/支持。还要注意可以单方面对你征收的罚款/罚款,这通常与'ofense'的规模大不相称。

答案 7 :(得分:2)

整个过程有很多。最简单的方法是使用类似于paypal的服务,这样你就不会真正处理任何信用卡数据。除此之外,还有很多东西要经过批准才能在您的网站上提供信用卡服务。您可能应该与您的银行以及发布商家ID的人员联系,以帮助您设置流程。

答案 8 :(得分:2)

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

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

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