3.0-rc.5 Security Enhancement
🏮 Happy Lunar New Year of Rabbit! 🐇
后续的构建版本都在Actions里面,为了保证您用到最新版本,请登录GitHub后前往Actions页面下载最新的build。
What's Changed
-
⚠重要漏洞修复
我们修复了一个由旧版 go-mc 引起的 DoS 攻击漏洞,该漏洞允许恶意攻击者通过发送一个声明超大长度的伪造数据包导致 ZBProxy 因内存不足而崩溃。该漏洞影响范围为 ZBProxy 3.0-rc.1 到当前版本之间的所有版本,请所有用户尽快更新到最新版本以免受到安全威胁。
-
全新设计的高灵活 MCProtocol 框架
在漏洞修复的同时,我们认识到 go-mc 的编程目的与我们不尽相同。因此,我们在 go-mc 开发经验的基础上重新开发了一套 Minecraft 网络框架。该框架轻量简单,支持灵活的数据处理,具有更少的 alloc ,更少的 IO 次数,从而拥有更高的性能比。我们尽可能多地使用 Go 标准库和 Go 语言特性而非反复造轮子,以此提高框架代码的清晰性和可读性。由于其高灵活的 API 设计,开发人员可以更容易地应对不同类型的内容攻击。
我们支持更多同类转发程序使用我们的框架,该框架主要遵循 ZBProxy 主体开源协议开源(具体见代码),再发行/引用时请注意协议相关要求。
注:由于与 go-mc 开发与优化方向不同,我们的框架不是 go-mc 的替代品/竞争对手/潜在竞争对手。此框架只为 Minecraft 多人游戏协议包的简单处理而设计,并未完整实现整个协议。
-
更小的编译体积
在上一个版本,我们把 ZBProxy 的体积减小了 2~3 MiB。在这一版本,我们移除了对 go-mc 的依赖,同时也无需再编译 crypto/tls 标准库(通过移除不怎么有用的版本更新检查)。我们的最终体积减小到了 2 MiB 左右。这对正常编译的 Go 语言程序来说已经是较为极限的体积,代码利用率达到很高水平,符合简单高效的预期。
Merged
- chore: Bump golang.org/x/sys from 0.3.0 to 0.4.0 by @dependabot in #74
- chore: Bump actions/upload-artifact from 3.1.1 to 3.1.2 by @dependabot in #75
Full Changelog: 3.0-rc.4...3.0-rc.5