查看: 2593|回复: 43
打印

【Q&A】近期h5相关技术问题的问题解答

[复制链接]

8996

积分

5864

人气

81

粮饷

「管理员」

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

跳转到指定楼层
发诏君主
发表于 2019-11-12 21:25:38 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
亲爱的社区玩家朋友们:

近几日玩家朋友们对h5相关技术问题众说纷纭,或不明所以。
这里给大家做一个解释,让大家能够很容易的明白。

Q:H5(HTML5)到底是什么?客户端代码是如何被查看到的?
A:由于到2020年7月之后各大主流浏览器将陆续不支持flash,所以我们提前将游戏转为当前流行的HTML5游戏,HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式。它被认为是互联网的核心技术之一。

目前大部分HTML5游戏都是基于JavaScript的,JavaScript是一种解释型的脚本语言,是在程序的运行过程中逐行进行解释,其源代码在发往客户端浏览器运行之前不需经过编译。不像C、C++等语言先编译后执行,C/C++编译后基本上不具备可读性,这样较为安全,不容易被破 解攻击。

JavaScript作为一种解释型的脚本语言,主要被作为客户端脚本语言在用户的浏览器上运行,所以浏览器成为JavaScript的一个载体负责加载解析JavaScript。为了运行JavaScript时方便开发人员调试代码,各大主流浏览器都开发了自带的调试工具,使用浏览器调试工具你可以方便的查看代码内容,调试代码运行状况,网络加载情况等;方便了开发人员的同时也无可避免的将代码暴露给了用户,同时也成为了有心之人攻击的工具。我们开发人员也尝试 用加密的方式加密JavaScript代码,但是由于浏览器种类众多,会有部分浏览器不支持,所以我们为了兼容性,牺牲了部分安全性。目前我们开发人员也在做各种尝试,保证兼容性的同时,提高攻击者的门槛,不让浏览器成为有心之人的攻击工具。

在这样的条件与背景下,H5游戏代码已与开源相差无几,而Javascript属于脚本语言,无需编译即可执行。同时游览器的console控制台可以查看所有正在运行中的全局对象与数据,因此通过查看正在运行中的内存数据,结合游戏业务代码可以随意修改内存数值,并凭借业务通信接口可以向服务端发送篡改好的协议数据。因此开始出现通过游览器控制台调用游戏业务接口,伪造协议,利用漏洞刷道具,来达到牟利的目的。另外更存在第三方软件,模拟游戏行为创建账号,直接访问服务端,并进行售卖牟利。

Q:官方是如何核查这批违规账号的?
A:针对这批账号我们将会一个不漏的进行处理,包括但不限于以下排查方式:
1.通过发送非法删除道具协议,获得大量道具的问题,查询道具表日志类型为(道具变更)的日志,筛选出变更类型为删除道具的日志,以上筛选的日志中,变更的道具数量为负值的,都是异常的信息。

2.战场奖励异常获得账号处理方式:
        a).查询道具日志类型为(道具变更)的日志,筛选出变更类型为战场奖励的日志,该日志信息中记录了玩家获取的道具和奖励对应的战场等级;
        b).查询日志表中日志类型为(战场等级)的日志,该日志中记录玩家获战场等级时对应的时间;

通过以上两次信息的查询,可以匹配到玩家在某个时间点的战场等级,从而判断是否是异常领取的战场奖励。


Q:关于我们的开发人员对变量名命名方式的质疑?
A:至于变量命名方式,很多时候开发人员使用拼音命名只是为了提高开发效率,大家都知道三国杀会用到很多中文里特有的词汇,很多拿来翻译成英文可能会变量名变得很长,或者变得难以阅读不好理解,同时也增加了开发人员使用的时间成本(当然有些简短容易理解的英文单词也会成为开发人员常用的变量名);对于开发人员来说变量名只是一个代名词,高效便于理解才是对开发人员最好用的。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则