Mobile 如何确保http请求不是手工创建的?
我如何确保在http请求中发送到服务器的数据实际上是由我的应用程序(移动应用程序)生成的,而不是由用户手工制作的 例如:如果我有一个游戏,我想向服务器提交用户的分数,如何确保用户没有看到请求数据并开始向服务器发送手工制作的分数 我考虑使用哈希算法和应用程序密钥。因此,请求将发送四条数据:分数、日期、用户ID和散列(分数+日期+用户ID+密钥)。然后,我可以在服务器上再次执行此哈希操作,并验证数据是否合法。但是,如果黑客能够反汇编应用程序并查看密钥是什么,我如何保护自己?Mobile 如何确保http请求不是手工创建的?,mobile,ssl,cryptography,Mobile,Ssl,Cryptography,我如何确保在http请求中发送到服务器的数据实际上是由我的应用程序(移动应用程序)生成的,而不是由用户手工制作的 例如:如果我有一个游戏,我想向服务器提交用户的分数,如何确保用户没有看到请求数据并开始向服务器发送手工制作的分数 我考虑使用哈希算法和应用程序密钥。因此,请求将发送四条数据:分数、日期、用户ID和散列(分数+日期+用户ID+密钥)。然后,我可以在服务器上再次执行此哈希操作,并验证数据是否合法。但是,如果黑客能够反汇编应用程序并查看密钥是什么,我如何保护自己? 除了用散列码对请求进行签
除了用散列码对请求进行签名,还有更好的方法吗?简短回答,你不能。用户可以通过应用程序做的任何事情,都可以通过逆向工程应用程序并执行它将执行的操作来完成。你所能做的就是让事情变得更困难。简而言之,你不能。用户可以通过应用程序做的任何事情,都可以通过逆向工程应用程序并执行它将执行的操作来完成。你所能做的就是让事情变得更难。唯一正确的方法是将游戏的一些业务逻辑移动到服务器上进行验证,或者以其他方式让服务器参与进来,以确保服务器端对游戏过程有控制权,并且结果不是假的。唯一正确的方法是将游戏的一些业务逻辑移动到服务器上进行验证,或者以其他方式让服务器参与进来,以确保服务器端对游戏过程有控制权,并且结果不是假的。