v0.1.1
修复 v0.1.0 中用 IP + 端口访问面板时无法登录的缺陷。使用 v0.1.0 的请立即升级。
🐛 修复
裸 IP + HTTP 部署下登录返回 403「跨站请求已拒绝」(#none)
面板发送的 Referrer-Policy: no-referrer 同时打断了两道 CSRF 防线:
- 按 Fetch 规范,该策略下非 CORS 表单 POST 的
Origin被序列化为字符串"null"; - 按 Fetch Metadata 规范,
Sec-Fetch-*只对 potentially trustworthy URL(HTTPS 或 localhost)
才追加,http://<IP>:<端口>拿不到这些头。
于是 CrossOriginProtection 只剩 "null" 可与 Host 比对,判为跨站并拒绝。
同一个响应头在 HTTPS 下还会让 gorilla/csrf 的同源 Referer 校验恒为空(ErrNoReferer),
即套上 TLS 后同样无法登录。
改为 Referrer-Policy: same-origin:对第三方一样不泄露来源,但保留同源请求的
Origin 与 Referer,两条路径均恢复正常。已新增回归测试锁定该行为。
开发期一直用
http://localhost访问,而 localhost 属 trustworthy URL、Sec-Fetch-*齐全,
因此本地门禁始终为绿——这也是该缺陷直到实际部署才暴露的原因。
升级
替换二进制并重启即可,无数据库迁移、无配置变更:
tar xzf xpanel_v0.1.1_linux_amd64.tar.gz
sha256sum -c SHA256SUMS
systemctl stop xpanel
install -m 0755 xpanel /usr/local/bin/xpanel
systemctl start xpanel首次安装请参考 README 与包内的
deploy/(xpanel 示例配置、Xray v26.3.27 参考配置、systemd unit)。
已知限制
- 配额是轮询式控制(每 5 秒读一次计数),存在检测延迟,已建立的连接可能继续并造成少量超额;
不做逐字节硬限额,也不做实时限速 - Xray 重启会让所有用户端口短暂不可用,面板按库中端口分配自动重建
- 仅提供 Linux 二进制;Windows 因单实例文件锁依赖
flock暂不支持 - 性能与可访问性验收(首次交付耗时、操作 P95、纯键盘与小屏成功率)尚未人工实测
完整变更:v0.1.0...v0.1.1