商家网站在实施支付网关时应该担心什么?

时间:2010-08-24 17:49:23

标签: c# security payment-gateway payment-processing

我必须为我维护的网站实施支付网关,之前我没有做过这样的事情。以前要实施支付处理,该网站将建立一个交易并将其直接发送给支付处理器并等待结果。由于该网站处理信用卡信息的收集,交易的建立以及请求/响应,因此我不必担心以前的开发人员尚未涉及。

现在我正在实施支付网关,有什么我应该检查或验证的吗?

这个处理器的工作方式是,我在隐藏字段中构建一个具有订单ID,金额,货币等的表单。该表单将发布到网关,该网关将处理该处理,然后将表单发回我们的服务器,我们可以更新购物车并完成订单。

我唯一能想到的是用户在将表单字段发布到网关之前修改表单字段。比如添加100美元的商品并更改

<input name="amount" value="100.00" type="hidden"> 

<input name="amount" value="0.01" type="hidden"> 

因此,当我收到帖子时,我必须核实支付的金额等于欠款。还有什么我想念的吗?实现文档甚至没有提到类似于上面的场景,所以我有点担心我错过了其他的东西,让网站开放进一步利用。

3 个答案:

答案 0 :(得分:0)

我认为你最好创建一个专门的网络服务来处理你在这里进行的'第三方'管道架构,你基本上扮演中间人和HTML表单对我来说感觉不必要的开销,除非要求以特定方式完成,否则我将转向Web服务。

话虽如此,将其视为任何客户端应用程序,不要相信他们给予您的任何信息,在执行操作之前根据需要验证和清理信息。

我还建议构建或集成对登录到中间件系统的支持,因此如果出现问题,您可以通过某种方式捕获问题并在将来跟踪它们,修复错误,支持调用等。

这可能是显而易见的,但请确保验证您的订单#,用户可以将任何内容放在他们想要的位置,再次验证和清理数据并记录真正奇怪的情况。

答案 1 :(得分:0)

首先,我必须同意Capital G.与服务器连接比通过客户端浏览器尝试处理表单提交要容易得多。

要检查一件事:提交到网关后,客户端是否会将帖子发回服务器,或者网关服务器是否处理它?如果客户端发起它,是什么阻止他们向你发布订单完整而没有去过网关?听起来您可能需要向网关发出Web服务请求,以验证付款实际已经完成,然后才接受声称它的客户端POST。

您可以在通讯中添加摘要吗?如果您与网关有共享秘密,则可以通过双向包含摘要来验证共享信息的完整性,即使它通过客户端传递。

有意义吗?

卡尔

答案 2 :(得分:0)

首先,我认为您没有实施支付网关。听起来你只是在使用一个。如果这是错误的,只要忽略这个答案的其余部分,我会在以后删除它:)

使用简单HTTP表单中的支付网关

Google Checkout - 作为一个示例 - 允许您使用与您描述的“未签名购物车”类似的“未签名购物车”。另一个选项是通过Web服务界面发布,并进行正确的错误检查等。当您使用HTML表单提交订单时,Google Checkout会警告您,商家,“购物车未签名”(稍后在管理员中)屏幕)。这意味着购物车中的信息 - 尤其是价格 - 不值得信任。最终用户放入他们的信用卡这一事实基本上证明了交易对他/她来说是正常的。因此,您只需检查用于到达最终总数的数字 - 或欠款,或任何业务 - 检查。所以你在低级别做的事情很好。

您应该使用网络服务提交服务的原因 - 以及安全签署购物车等 - 是......如果数字错误,您会怎么做?打电话给最终用户并解释情况?所以这有点棘手,因为你不能假设欺诈。有很多奇怪的原因可以改变购物车,而用户实际上并不想欺骗你。