支付网关:需要信息哈希?

时间:2013-09-27 14:58:24

标签: php security hash

我正在为我的组织构建支付网关。不同的应用程序将能够将数据POST到网关以初始化事务。其中一些数据将是2个帐户代码和美元金额。

现在我的想法已转移到安全性。我担心最终用户能够在途中更改POST信息,最终支付更少费用或将资金存入错误的帐户。为了解决这个问题,我正在考虑添加应用程序可以传递的哈希值。

我认为每个预期的主机都有一个唯一的密钥。除了他们的数据,他们可以发送哈希值 随机盐+他们的密钥+ 2个帐户代码+美元金额,以及发送他们的随机盐。在支付网关上,我可以使用其传递的信息+唯一密钥重新生成该哈希,以查看数据是否已被更改。

这是否足够?我的理论有什么问题吗?

1 个答案:

答案 0 :(得分:1)

这基本上是支付服务提供商使用的。诀窍是“密钥”是私有的,因此它不是您在帖子中发送的内容之一。你和发件人做了相同的哈希,只要它们相等,就没有篡改。

银行使用的另一个选项是将付款与邮件分开:从实际知道价格的地方(服务器?)生成付款请求,并将该号码传达给您的客户。然后让他们使用此号码与您的支付网关进行通信,而不是让他们发布任何金额。没有篡改。

第一个选项由我知道的几个支付提供商使用,第二个选项是我们目前直接在我们银行使用的支付提供商。

为了增加私人信息的安全性,让结果也包含你知道的哈希值,所以当有人(用户?)要求“感谢付费”页面时,你实际上可以检查它是区域用户。