最近,我的游戏被黑了,一个用户向服务器提交了一个不可能的分数。分数与已验证的校验和和正确的数据一起提交。

我坚信用户必须对我的APK文件进行反向工程才能找到POST请求。

现在我想知道什么是防止再次发生这种情况的好方法,所以我考虑了验证应用程序的SHA1签名。也许通过这种方式,我可以确保该应用程序已由我签名,并且不是该应用程序的反向工程和更改版本。

这可能吗?还是会有更好的解决方案来解决这个问题?

我正在使用LibGDX。

最佳答案

首先,您确实必须混淆您的代码。您可以找到有关ProGuard和代码混淆here的更多信息。

其次,您可以使用Google Play服务中提供的GoogleAuthUtil,该服务可用于运行Android 2.2或更高版本的设备。

GoogleAuthUtil完全满足您的需求:

java - 如何验证POST数据是通过具有正确SHA1签名的Android应用发送的?-LMLPHP

您的客户端服务器调用通过HTTPS请求转到Google,Google检查该调用是否由使用您的发行证书签名的应用程序进行,然后将请求发送到您的服务器。

您可以找到有关如何实现此here的官方教程和官方文档here

干杯!

07-28 01:45
查看更多