javascript - H5积分游戏防作弊

查看:320
本文介绍了javascript - H5积分游戏防作弊的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如题

对于现在大部分的积分性质的h5游戏,比如:阿里的这款demo,Flappy Bird

在游戏结束的时候,需要发送请求到后端,以此来记录玩家的分数,展示排行榜等信息。

但是,目前h5游戏对于用户来说,既是开源的,那么,用户作弊的门槛就会特别低,即使服务端做再多的验证,也是无济于事。不知道,此类问题是否有相对完美的解决方案?


综述:
感谢两位楼主的解惑,以及二楼精彩的评论。的确,前端任何加密都是增加破解成本而已。

  1. 我们可以不仅对请求参数各种形式的加密,对关键的js代码也做混淆加密,增加破解门槛。

  2. 根据防止表单重复提交的原理,生成唯一sign,防止不玩游戏直接通过链接提交。

  3. 在游戏开始的时候,发送一个请求,在服务端记录当前时间或者其它一些标识,游戏结束的时候,根据时间或者当前的标识去做逻辑判断,比如,类似这个游戏,分数和时间是有数学关系的。

  4. 对于一定范围之后的分数,做更为复杂的验证,分析用户行为等等。

解决方案

我看了一下, 就是给的链接就是重写了h5版的 flappy bird.
并且, 没有发请求.

localStorage存储的.

因为这个游戏本身就是这种需求.
上述就是为了证明这个demo与题主的需求不同

题主的需求是为了生成排行榜, 在不同端post/get. 所以需要后台支撑.
同时发送请求时容易被恶意调用, 导致排行榜的真实性被破坏.

根据这个条件, 我想到了 2个办法:

  1. 首先h5(游戏)页面不可能脱离微信, 毕竟是当前国内最大的社交平台.
    甚至可以完全依赖微信, 公众号开发(估计会有), 去验证是否在微信中浏览, 如果不是, 直接跳转到中转页, 干脆不让用户玩.这个功能, 完全可以自己模拟出来.

  2. 在请求中加密.
    自己制定一套加密方案, 比如生成一个排行数据, 在前端加密 (可以多加密几层, 但是要做到不破坏内容, 即可逆), 到后台再解密.

补充一点, 就如下放评论中@hzc说的, 前端任何加密都是增加破解成本而已.

这篇关于javascript - H5积分游戏防作弊的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆