Android Documentation中有以下建议:


  安全建议:好的做法是传入一个字符串
  帮助您的应用程序识别进行购买的用户,因此
  您以后可以验证该商品是否合法购买
  用户。对于消耗品,您可以使用随机生成的字符串,
  但是对于非消耗性物品,您应该使用唯一的字符串
  识别用户。


生成此字符串的最佳实践是什么?

最佳答案

单独使用该应用程序时,最好的方法是


使用混淆的Google Play LVL用户ID,并在分隔符后使用
添加安全的随机信息(也称为随机数),并根据您的需要,
您可以添加其他信息来标识例如时间点


这样,你可以


关联LVL和IAB信息,以及
与没有随机数的情况相比,IAB服务响应的安全性更高


仍然存在以下漏洞:


Having your app check LVL/IAB is insecure in general因为检查原则上可以在逆向工程之后被覆盖。
在创建购买意图时(而不是根据有效性请求本身)设置了IAB随机数,因此无法验证您获得的响应是​​否不是来自重播攻击。
IAB V3 information is cached inside the IAB service on the Android device,因此甚至无法保证您会获得最新信息。如果设备处于脱机状态,或者服务确定不需要立即重新验证缓存信息的有效性,则该服务将以静默方式将缓存信息传递给应用。


进一步提高安全性的唯一方法是use a server-based approach for LVL/IAB validation.

10-08 17:20