我们的随机数生成器 Git 哈希漏洞

主要观点:在[Dragon Prince: Xadia]游戏中,通过平台 YAML 配置中的gameServerVersion字段来使游戏服务器和客户端同步,客户端可据此判断是否需要更新。某天 QA 领导报告 Sandbox2 分片的客户端仍显示有更新但实际部署已完成,经调查发现客户端和平台的 git 哈希值匹配,而客户端日志中gameServerVersion显示为"Infinity",最终发现是 git 哈希值缺少引号导致 YAML 解析器将其解释为字符串而非数字,解决方法是在 git 哈希值前后加上引号。
关键信息

  • 有 iOS/Android 客户端、游戏服务器和平台,通过gameServerVersion字段同步。
  • QA 领导报告 Sandbox2 分片客户端更新问题。
  • 调查发现客户端和平台 git 哈希值匹配,客户端日志中gameServerVersion为"Infinity"。
  • 原因是 git 哈希值缺少引号被 YAML 解析器解释为字符串。
    重要细节
  • TeamCity 部署作业动态设置gameServerVersion值。
  • 之前的短 git 哈希值不会被解释为数字。
  • 解决方案是在 git 哈希值前后加引号并更新 TeamCity 代码。
阅读 8
0 条评论