restrict v2

This commit is contained in:
tamakyi
2026-10-18 21:27:02 +08:00
parent 6bd90779f8
commit 6111546bbd
2 changed files with 49 additions and 15 deletions
+14
View File
@@ -157,3 +157,17 @@ L4 整页停用、举报按钮与箱主面板筛选、邮件告警。分享卡
同时核实:`Dockerfile` 的构建命令是 `go build ... ./cmd/`(不是根目录),所以两个入口必须同步 ——
已写进 MEMORY.md。部署前必须先确认 `./NekoBox --help` 里有 `restrict`,否则是旧产物。
手册里另注明两项只能人工手测:L2(回答应保存为私密)、L3(回答应被拒绝)。
### 首次实跑反馈(用户 dry-run)
用户给 `DOMAIN=admin56` 跑 dry-run,结果 2 项 FAIL。日志证据:`SELECT * FROM "users" WHERE domain='admin56'`
→ **record not found**,说明该 domain 不存在(很可能把账号名当成了 domain)。所有 `/_/admin56` 的 302
都来自 `GetByDomain` 失败后的 `Redirect("/")`,与处置无关 → **L4 那项 PASS 是假阳性**。
同时 dry-run 不施加处置,前后状态没变,状态断言本来就无意义 —— 是脚本设计缺陷。
已修 `dev/devcheck-restrict.sh`:
1. 基线不是 200 直接中止并打印排查建议(302 常见原因 + 查真实 domain 的命令);
2. dry-run 在基线后短路,不再做状态断言(只验命令存在、基线、停用页);
3. 新增 1b「停用页是否部署」+ 文案断言,dry-run 也能验 i18n/模板。
教训(已与既有坑同类):**302 / 200 都不能单独证明处置生效**,必须先确立「基线 200」这个前提。