服务器地址空间修复

修复在服务器地址末尾带空格时,添加服务器或直接连接服务器出现的“未知主机”错误。

优化

注意:本文档最初以中文编写,并由 AI 翻译成其他语言。如果可能,建议阅读原始中文文档而不是翻译版本。
简体中文(GitHub)     简体中文(Gitea)     English(GitHub)     English(Gitea)

简介

这个模组旨在修复一个在 2021 年 11 月 26 日报告且至今仍未修复的漏洞。 漏洞追踪链接

功能

如果你在“添加服务器”或“直接连接”界面输入的服务器地址开头、结尾或中间包含空格,本模组会自动将其移除。 这可以防止上述“未知的主机”漏洞的发生。

本模组存在的原因
        几个月前,我想在一个服务器上游玩。我从服务器官网复制了地址,粘贴到“服务器地址”栏中,保存后,意外地遇到了“未知的主机”错误。
        不要慌张,这显然是 DNS 无法解析对应地址。先试试 ping 一下。
        Ping 能够成功将域名解析为地址,然后我怀疑是不是防火墙又在搞鬼,于是使用了一个站长之家的工具进行测试,结果与我的情况完全相同。
        这就很奇怪了。
        然后,经过一番捣鼓,我发现了问题所在。
        我复制的服务器地址末尾有一个空格。
        这让人有点难以接受。经过继续折腾并确认问题可以稳定复现后,我向追踪器提交了一个漏洞报告。
        你猜怎么着?
        我在漏洞追踪器上提交的问题
        下面的评论
        一个更早的漏洞报告
        我的英语水平完全不行,所以没有继续讨论下去。问题描述是用翻译器写的。
        但说实话,我觉得这有点荒谬。
        既然你的地址是 String 类型,事后调用一下 trim 方法能有多难?
        而且,作为玩家,当你告诉我:“这是你自己的粗心大意,所以根本不算漏洞”时,我无法接受。
        所以,这个模组诞生了。
    

配置文件

  • 如果你启用了版本隔离,它应该位于 .minecraft\versions\<版本名称>\config\ServerAddressSpaceFix.json5
  • 如果你没有启用版本隔离,它应该位于 .minecraft\config\ServerAddressSpaceFix.json5

这只是普通的 JSON 文本文件,只不过 JSON5 支持额外功能,例如注释。 所有属性都包含注释,涵盖了功能、取值范围、类型、默认值等内容。 你可以使用普通文本编辑器进行编辑。 你甚至可以在游戏运行时编辑配置文件;保存后会自动应用。

已知问题

所有已知问题均已修复。如果你发现任何新问题,请告诉我。 如果有人愿意帮助修复漏洞,欢迎提交 PR ╰(°▽°)╯

许可证

我使用比 MIT 更激进的 WTFPL。