介绍
NeoForge 和 MinecraftForge 会将所有“服务器配置”的全部内容同步到客户端。由于从命名上看不出这一点,一些模组最终在这些配置中放入了机密值,例如 Discord 机器人令牌。如果你运行的服务器使用了存在此问题的模组,那么任何能加入你服务器的用户都可以访问这些值。本模组通过在配置发送到客户端之前移除敏感值来避免这种情况。
版本
由于本模组涵盖了大量 Minecraft 版本和两个模组加载器,版本命名方案有些复杂。请参阅下表,了解适用于你的加载器和 Minecraft 版本的正确版本。
| 加载器 | Minecraft 版本 | 模组版本后缀 |
|---|---|---|
| MinecraftForge | 1.13.2 – 1.16.5 | -1.13.2 |
| MinecraftForge | 1.17.x – 1.20.1 | -1.17.1 |
| NeoForge | 1.20.1 | -1.17.1 |
| MinecraftForge | 1.20.2+ | -1.20.2-mcf |
| NeoForge | 1.20.2 – 1.20.5 | -1.20.2-neo |
| NeoForge | 1.21.0+ | -1.21.0-neo |
工作原理
本模组分两个阶段工作:首先,它在启动期间检测可能包含敏感信息的配置选项。由于这是使用非常粗略的启发式方法完成的,因此找到的选项必须在 config/serverconfigcleaner-common.toml 配置文件中手动分类:
- 其中大多数将是误报,即恰好匹配启发式规则的无害选项。例如,Create 中的选项
logistics.seatHostileMobs会因为包含字符串Host而被标记为可能敏感的选项。这些配置值必须添加到falsePositives列表中。 - 其中一些可能是包含实际敏感值的选项。这些选项必须以相同格式添加到
doNotSync列表中,例如doNotSync = ["mymod:discord.token"]。
要继续启动,所有找到的值都必须在 ServerConfigCleaner 配置中分类。本模组附带了一份已知误报和已知“有问题”选项的列表(后者不以明文形式提供)。因此,在此阶段你通常不需要做任何事。如果你必须手动添加值,请参阅下文了解如何将它们添加到默认列表中。
在第二阶段,模组会拦截服务器上的配置同步。如果某个值在第一阶段之后在配置中被标记为敏感,则该值在同步到客户端之前会被替换为默认值。由于敏感选项的默认值通常是开发者提供的无意义常量值(例如 INSERT BOT TOKEN HERE),因此可以在不泄露任何机密信息的情况下将其发送到客户端。
报告遗漏的值
如果你遇到不在配置默认列表中的误报,请创建一个问题列出它们。
如果你发现任何包含敏感信息且不属于默认敏感选项集的服务器配置选项,请不要使用这些选项创建问题。相反,请联系 malte0811(Discord:malte0811;电子邮件可在 GitHub 个人资料中找到)或 ThatGravyBoat(Discord:thatgravyboat)。
常见问题
ServerConfigCleaner 支持哪些 Minecraft 版本?
ServerConfigCleaner 支持 Minecraft Java 版 1.13.2–1.21.4,共 36 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
ServerConfigCleaner 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
评论
登录后评论和评分