0

http://developer.android.com/google/play/billing/billing_best_practices.html

正如最佳实践文档所建议的那样,我希望我的服务器为应用内计费执行签名验证任务。这让我想到了这个关于 nonces 的条款:

此外,如果您在服务器上执行随机数验证,请确保在服务器上生成随机数。

我知道我在购买请求中传递的随机数将作为购买数据的一部分返回以developerPayload进行额外验证。客户端使用 SecureRandom 生成唯一的随机数还不够吗?- 因为无论如何我都会将购买数据传回服务器进行验证,所以它也会存储客户端生成的随机数以过滤掉重放攻击。

为什么我必须“确保”在服务器上生成随机数?这似乎使过程复杂化,因为现在应用程序需要在任何应用程序内购买之前从服务器请求一个随机数。

我能想到它可能有用的唯一极不可能的情况是防止客户端上的 SecureRandom 生成已在服务器上使用的随机数的实例。即使这样,通过交叉检查也不容易识别这种情况orderId,无论如何它本身应该是唯一的?

4

0 回答 0