架构评估留下三个仅凭本仓库代码无法判定的问题。它们不阻塞任何 issue 开工, 但各自的答案会改变某项的优先级或做法。**在本 issue 中记录结论,逐项勾掉。** - [ ] **UltiPanel Worker 侧执行了哪些防御?** 具体是:`execute_command` 是否按用户授权、 `serverId` 路由是否校验完整性、入站是否限流。若干缺失的防御可能合理地存在于服务端。 这需要评估面板后端已实现的服务端防御。该组件不属于本仓库且非公开, 因此本项只能由具备访问权限的维护者回答,外部贡献者请跳过。 **答案会改变**:「面板从不向服务器认证」这一判断的严重性;以及 `PlayerEventManager` 硬编码 serverId 究竟是路由 bug 还是跨租户数据泄露。 - [ ] **Java-WebSocket 1.5.4 对 `wss://` 是否默认启用 TLS 主机名校验?** 客户端从不调用 `setSocketFactory`,也未设置 `SSLParameters.setEndpointIdentificationAlgorithm("HTTPS")`, 而该库历史上要求调用方自行处理。 **答案会改变**:若未启用,需要新增一条显式设置主机名校验的加固 issue。 - [ ] **Paper 是否把「Player issued server command: /…」这条日志走 JUL root logger?** Paper 使用 log4j,JUL 与 log4j 的桥接行为需要实测确认。 **答案会改变**:若走 JUL,`LogStreamManager` 会把每个玩家输入的每条命令流到面板—— 在使用登录类插件的服务器上可能包含玩家输入的敏感内容。若确认,此项应转为私有 security advisory 并加日志脱敏,而不是留在公开 issue 中。 **验收**:三项全部有明确结论并附证据(Worker 代码引用 / 依赖源码或实测 / 真服务器日志)。 任一项确认为安全问题时,转入私有 advisory 并在此注明,不在本 issue 中展开细节。
架构评估留下三个仅凭本仓库代码无法判定的问题。它们不阻塞任何 issue 开工,
但各自的答案会改变某项的优先级或做法。在本 issue 中记录结论,逐项勾掉。
UltiPanel Worker 侧执行了哪些防御? 具体是:
execute_command是否按用户授权、serverId路由是否校验完整性、入站是否限流。若干缺失的防御可能合理地存在于服务端。这需要评估面板后端已实现的服务端防御。该组件不属于本仓库且非公开,
因此本项只能由具备访问权限的维护者回答,外部贡献者请跳过。
答案会改变:「面板从不向服务器认证」这一判断的严重性;以及
PlayerEventManager硬编码 serverId 究竟是路由 bug 还是跨租户数据泄露。Java-WebSocket 1.5.4 对
wss://是否默认启用 TLS 主机名校验?客户端从不调用
setSocketFactory,也未设置SSLParameters.setEndpointIdentificationAlgorithm("HTTPS"),而该库历史上要求调用方自行处理。
答案会改变:若未启用,需要新增一条显式设置主机名校验的加固 issue。
Paper 是否把「Player issued server command: /…」这条日志走 JUL root logger?
Paper 使用 log4j,JUL 与 log4j 的桥接行为需要实测确认。
答案会改变:若走 JUL,
LogStreamManager会把每个玩家输入的每条命令流到面板——在使用登录类插件的服务器上可能包含玩家输入的敏感内容。若确认,此项应转为私有 security advisory
并加日志脱敏,而不是留在公开 issue 中。
验收:三项全部有明确结论并附证据(Worker 代码引用 / 依赖源码或实测 / 真服务器日志)。
任一项确认为安全问题时,转入私有 advisory 并在此注明,不在本 issue 中展开细节。