Google电子钱包文档(针对数字商品)说:
注意:这些回调处理程序不安全.有人可以使用Firebug或Chrome开发者工具调用其中一个功能,模拟成功或失败.您应该在服务器上确认购买.
引用中的链接是指定回发URL.
但由于jwt是由Google签署的 - 为什么需要?我们可以简单地在服务器的页面代码隐藏中检查成功处理程序的jwt 的签名.
(如果签名不够 - 在回发网址上也不够,因为如果有人发现网址 - 他们可能会在那里发送一个POST,然后问题就会返回.)
文档声明*IF*您指定了一个回发网址.因此,您可以尝试不提供一个并按上述方式处理(仍然是"服务器端").
假设您的测试工作,两者之间的差异:
在使用回发网址的情况下,所有相关方,买方,您和Google都"同步" - 如果由于某种原因无法履行,在您的服务器上出现问题,等等,则交易失败(否)订单生成)为所有人.
在没有回发网址的情况下,假设成功,交易可能有不同的状态:
希望这可以帮助...
在涉及安全方面,还有另一个"好处"(在某些流程中可能至关重要).使用回发网址,您可以获取另一个验证步骤的订单详细信息(例如,基于订单ID).您可以验证客户端发送的订单是否"有效"(无论是什么业务规则 - 例如if order-id exists then.....),因为成功回调发生在回发之后.
例如,通过重播相同(有效)的JWT(在iat /任何到期范围内)进行模拟
卖家/开发人员可能会在他们的应用程序中出现无数的流量,因此使用"回发网址验证流程"可以减轻可能出现的问题.
心连心....
Cur*_*aul -1
正如文档所说,所有客户端代码都可以使用各种浏览器开发工具轻松更改,因此不应被信任。
我认为他们担心的是 JavaScript 可能会被操纵,以便您的服务器认为付款已经发生,并且用户获得了他们实际上并未付款的产品。
如果有人发现该 URL 并发布到该 URL,他们无法控制服务器代码,因此服务器将从他们的卡中收取费用,因此这并不是真正的问题。
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |