如题
对于现在大部分的积分性质的h5游戏,比如:阿里的这款demo,Flappy Bird
在游戏结束的时候,需要发送请求到后端,以此来记录玩家的分数,展示排行榜等信息。
但是,目前h5游戏对于用户来说,既是开源的,那么,用户作弊的门槛就会特别低,即使服务端做再多的验证,也是无济于事。不知道,此类问题是否有相对完美的解决方案?
综述:
感谢两位楼主的解惑,以及二楼精彩的评论。的确,前端任何加密都是增加破解成本而已。
我们可以不仅对请求参数各种形式的加密,对关键的js代码也做混淆加密,增加破解门槛。
根据防止表单重复提交的原理,生成唯一sign,防止不玩游戏直接通过链接提交。
在游戏开始的时候,发送一个请求,在服务端记录当前时间或者其它一些标识,游戏结束的时候,根据时间或者当前的标识去做逻辑判断,比如,类似这个游戏,分数和时间是有数学关系的。
对于一定范围之后的分数,做更为复杂的验证,分析用户行为等等。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把游戏逻辑放在服务器实现,前端只是发送操作命令和根据服务器计算结果更新本地状态和画面。
例如Flappy Bird,服务器记录了用户状态(小鸟位置、水管位置、加速度),用户发一个“跳”的命令,服务器收到“跳”命令后验证并修改状态,把状态发会给前端,前端更新本地状态和画面。
这样就能让作弊的门槛(和开发成本)高很多了。