前端js是解释型语言,用户可以直接获取到源码,容易作弊,比如直接修改血量(无限血量、永远不死)、直接刷接口(发奖)。针对这种现状,可以通过以下手段一定程度保证不出现事故。
-
接口隐藏能力:混淆、加密等手段增加破解接口的难度
-
异常感知能力:记录疑似作弊用户行为,超过阈值报警
-
一键止损能力:被爆破后,一键停服止损
-
快速升级能力:停服后能够迅速升级加密机制
接口隐藏能力:
-
前端代码混淆,让用户无法直接轻易读懂源码
-
接口内容加密:
-
-
request_path/request_body/response_body都采用aes256加密
-
对称密钥隐藏&更新:
-
-
初始密钥:首页加载时,请求服务端某个图片地址http://a.com/head.jgp,服务端把密钥追加在图片末尾
-
后续密钥通过每个response更新, 本次request密钥来源于上次请求的reponse
-
-
-
迷惑性response: 不给前端返回任何错误信息,有可疑行为均记录服务端日志, 增加接口参数调试的迷惑性
-
杂音参数:每次请求可以添加n个无用的杂音参数,增加接口调试难度
异常感知能力:
-
记录用户可以行为
-
-
解密失败
-
奖励数据超过配置阈值
-
阶段数据之和与总数不符合
-
-
定时扫描可以行为数据,绝对值、百分比,超过阈值则发送报警通知
一键止损能力:被爆破后,可以迅速拉黑用户、更换低价值配置数据、一键停服
快速升级能力:
-
停服后能够迅速升级加密机制,提前准备多套加密机制,发现问题后前端及时发版。
-
甚至可以,前端定期发版,更新加密机制,使现行的作弊手段失效