Skip to content

fix(安全): 一键部署/卸载/暴露公网加显式确认校验(v2.2.1) - #12

Merged
backrooms-yrc merged 1 commit into
mainfrom
release/v2.2.1
Aug 24, 2026
Merged

fix(安全): 一键部署/卸载/暴露公网加显式确认校验(v2.2.1)#12
backrooms-yrc merged 1 commit into
mainfrom
release/v2.2.1

Conversation

@backrooms-yrc

Copy link
Copy Markdown
Owner

响应插件市场安全审核的安全加固(功能完整保留,v2.2.0 → v2.2.1)。

变更

  • 一键部署两步确认:点击后先在确认面板完整披露将执行的系统级操作(缺失时安装 Bun、克隆官方仓库、创建 systemd 服务),再键入版本号(如 v3)确认才执行
  • 后端 confirm 校验relay/deploy 要求请求体 confirm 与版本号一致;relay/uninstallrelay/exposecoyote/expose 要求 confirm=true——绕过前端直接调用接口一律 400 拒绝
  • README 新增「安全披露」段落:管理员鉴权(框架层 require_plugin_scope)/ 来源固定可审计 / 部署不改防火墙 / 卸载完全可回滚 / 无隐蔽持久化
  • test_relay_pages 新增 8 项 confirm 校验回归

测试

  • test_relay_pages49/49 通过
  • test_reply_seg37/37 通过

部署逻辑本身无任何改动,仅增加显式确认与披露。

- relay/deploy 需请求体 confirm 与版本号一致(前端两步确认:披露执行内容 + 键入版本号)
- relay/uninstall、relay/expose、coyote/expose 需 confirm=true 二次确认
- README 增加安全披露段落(管理员鉴权/来源固定/最小权限/可回滚)
- test_relay_pages 新增 8 项 confirm 校验回归(共 49 项全过)
@github-actions

Copy link
Copy Markdown

👋 感谢贡献 CurrentCortex!

@backrooms-yrc,你好!你的拉取请求 #12 已收到。

本次改动:7 个文件,+287 / -24

接下来会发生什么

  1. 🤖 测试机器人会自动运行测试并反馈结果
  2. 🤖 AI 审查机器人会对改动做一次初步代码审查(仅供参考)
  3. 👀 维护者会在方便时进行人工审查

期间你可以继续推送提交,机器人会自动跟进最新的改动。祝顺利合并! 🎉

@github-actions

Copy link
Copy Markdown

🤖 AI 代码审查

改动概述

为中转服务器的部署/卸载/暴露公网接口增加后端 confirm 二次确认校验(部署要求键入版本号),前端配套两步确认面板,更新 README 安全披露、CHANGELOG、版本号,并补充单元测试。

潜在风险

  1. confirm 校验是“知情确认”而非安全边界confirm=true / 键入版本号对已通过管理员鉴权的调用者不构成实质防护,仅防误触。README 中表述基本准确,但需注意不要让审核方误以为这是额外鉴权(实际鉴权仍完全依赖框架层 require_plugin_scope)。
  2. page_coyote_exposeconfirm 校验位置:校验放在 payload.get("port") 解析之前,逻辑正确;但该接口旧版前端(缓存页面)未带 confirm 会直接 400,属预期破坏性变更,建议在发布说明中提示用户强刷页面。
  3. 前端 relayDeployfinallycancelRelayConfirm(v):部署失败时也会关闭确认面板并清空输入,用户需重新键入版本号重试,体验略差但无功能问题。
  4. 测试通过 monkeypatch P.request.json 实现,与现有测试风格一致,可接受。

建议

  • 无阻塞性问题。可选:部署失败时保留确认面板(仅成功后关闭),减少重试摩擦;在 CHANGELOG 中注明“旧版前端页面需刷新”以避免兼容性困惑。

整体实现与文档描述一致,测试覆盖了缺 confirm / 不匹配 / 匹配三种路径,可以合并。


以上内容由 AI 自动生成,仅供参考,最终以人工审查为准。

@backrooms-yrc
backrooms-yrc merged commit 1cb22ff into main Aug 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant