游戏客户端更新版本号的安全措施。

客户端版本号也能让游戏客户端变得不安全。

移动端的游戏通常都会根据客户端版本号决定是否要提示客户端升级或下载新的资源。

开发通常都会使用 1.1, 1.3, 1.6 这样的版本号。连入网络后和最新客户端版本号进行比较,决定是否升级。

进行版本比较的代码,使用了字符串比较。
我们都应该知道对于字符串来说: "1.2" 是大于 "1.1", "2.0" 是大于 "1.9" 。而且支持含有多个小数点的版本号,例如 "1.1.0" 是大于 "1.0.9" 的。
一行代码,看上去很简单不会有什么问题。

在实际项目中突发bug,客户端研发把版本更新到1.10。而对于字符串来说, "1.10"  是小于 "1.9"的。

结果是,所有线上老版本都没有提示和进行更新。而服务端没有向下兼容,老用户完全无法运行。

所以,安全做法是强制要求更新客户端模块必须使用数字(INT)对版本号进行比较。如果是字符串,要先解析成数字 INT 整数形态,再逐个比较。而不能直接使用字符串比较。

 

更多安全技术,请关注公众号,一起交流,一起进步。

游戏客户端更新版本号的安全措施。_第1张图片

 

你可能感兴趣的:(游戏安全,安全,游戏)