Skip to content

v0.1.1

Choose a tag to compare

@lchecho lchecho released this 08 Sep 06:44
· 13 commits to main since this release

修复 v0.1.0 中用 IP + 端口访问面板时无法登录的缺陷。使用 v0.1.0 的请立即升级。

🐛 修复

裸 IP + HTTP 部署下登录返回 403「跨站请求已拒绝」(#none)

面板发送的 Referrer-Policy: no-referrer 同时打断了两道 CSRF 防线:

  1. 按 Fetch 规范,该策略下非 CORS 表单 POST 的 Origin 被序列化为字符串 "null"
  2. 按 Fetch Metadata 规范,Sec-Fetch-* 只对 potentially trustworthy URL(HTTPS 或 localhost)
    才追加,http://<IP>:<端口> 拿不到这些头。

于是 CrossOriginProtection 只剩 "null" 可与 Host 比对,判为跨站并拒绝。
同一个响应头在 HTTPS 下还会让 gorilla/csrf 的同源 Referer 校验恒为空(ErrNoReferer),
套上 TLS 后同样无法登录

改为 Referrer-Policy: same-origin:对第三方一样不泄露来源,但保留同源请求的
OriginReferer,两条路径均恢复正常。已新增回归测试锁定该行为。

开发期一直用 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