1

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

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

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

这足够了吗?我的理论有问题吗?

4

1 回答 1

1

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

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

第一个选项被我认识的几家支付提供商使用,第二个是我们目前直接在我们的银行使用的。

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

于 2013-09-27T15:04:19.567 回答