使用Google Pay JavaScript API时防止客户端篡改

问题描述 投票:4回答:1

我正在尝试使用Google Pay API将Google Pay整合到我们的在线商店中,并且在教程中,有一个片段设置支付金额,以及JavaScript对象中的货币代码,如下所示:

paymentDataRequest.transactionInfo = {
  totalPriceStatus: 'FINAL',
  totalPrice: '123.45',
  currencyCode: 'USD'
};

这看起来非常不安全,因为任何人都可以在最终点击“使用Google Pay购买”按钮之前篡改客户端的值。

当然,我也可以检查最终从支付网关发回的值,然后将订单标记为欺诈,但我也想尽可能早地阻止这个,如果可能的话......

谢谢。

javascript google-api android-pay google-pay
1个回答
0
投票

写入设备的任何数据都需要读取。在技​​术意义上提到secret时,这个原则在面向用户的设备上更为突出,因为这些设备通常比充当服务器的机器更多地暴露给其他代理和个人。

您传递给loadPaymentData的交易信息永远不会确定最终收取的金额。从此调用中获得的是一种使用只有您的处理器具有的密钥加密的付款方式,因此,支付处理器(在服务器端)是唯一可以访问此信息的代理。通过服务器和处理器之间的安全通话,最终发出收费的请求仍在继续。

实质上,使用Google Pay检索付款信息以发出费用等同于没有Google Pay的情况,除了支付信息永远不会在客户端公开(因为用户不需要输入)因此,该过程在这方面具有额外的安全层。


1
投票

我还可以检查最终从支付网关发回的值

这是唯一可行的方法。

如果可能的话,我也想尽可能早地阻止这个过程。

这是不可能的。客户属于访客,最终完全由他们控制。

您可以通过模糊处理使其更难,但这会使您的代码更难以调试,并且不会阻止某人查看最终的HTTP请求并重新创建它们而不使用您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.