同步系统设置隔离回归与第一台正式升级证据

This commit is contained in:
xuans 2026-10-04 03:58:17 +08:00
parent c5774f3f13
commit 21b3bd300e
7 changed files with 32 additions and 21 deletions

View File

@ -27,6 +27,8 @@
## 当前验收边界
2026年10月4日03:55(UTC+8)补充:第一台已升级至系统设置权限修复版 `c5774f3`,Linux 全量、vet 与相关权限竞态通过;HTTP-01 实现未修改,升级后 80 未知挑战仍为无缓存四百零四。以下协议和 Nginx 历史证据保留,公共 CA 签发仍未验收。
2026年10月4日03:14(UTC+8):正式代码与前端已接入,前端 279 项、Linux 全量、vet 和专项竞态通过;真实独立 Nginx 十项、SQLite/MySQL 8.0.46/PostgreSQL 14.24 迁移专项通过。干净 `9c26db0` 官方 Linux 包已部署第一台,80 挑战路径内部检查通过;未知令牌无缓存 404,业务仍跳转 HTTPS,上游严格 TLS 不变。
第一台实际文件为 `/etc/nginx/conf.d/scert-odacm.conf` 和 `/etc/nginx/snippets/scert-http-challenge.conf`;仅接入管理域名对应 server,不表示其他托管域名已配置。Nginx reload 后最初请求曾由旧 worker 返回 301,随后重复检查已按新配置返回 404,原观察不隐藏。

View File

@ -1,6 +1,6 @@
# Linux 生产流程测试记录
## 2026年10月4日03:40 系统设置越权读取修复
## 2026年10月4日03:55 系统设置越权读取修复及正式部署
- 旧 `9c26db0` 工作树加入 `settings_scope_test.go`,执行 `scert-settings-scope-red-20261004-0333.service`,真实失败,退出码一。普通管理员 GET 原返回二百而非四百零三,响应未隔离缓存;角色降权后的旧会话原已返回四百零一,不误报为原认证失效。
- 修复:GET/PUT 均使用超级管理员实时会话中间件并先设置 `private, no-store` 与 `Vary: Cookie`;读取不访问明文凭据。前端先确认会话,仅超级管理员请求设置,响应解码完成后再次核验加载版本,避免旧请求覆盖新会话。
@ -10,8 +10,13 @@
- [x] 调整旧权限契约测试:可选邮箱会话继续验证普通管理员可读服务商目录,同时新增普通用户与普通管理员均不可读系统设置的断言;通用管理拒绝文案使用真正的普通管理路由,系统设置专属拒绝由新范围测试覆盖。没有放宽实际系统设置权限。
- [✓] 复跑单元 `scert-settings-scope-fixed-20261004-0343.service` 已 inactive、Result=success、ExecMainStatus=0;HTTP API 全量 49.496 秒、vet 和设置、DNS 范围、可选邮箱、管理中间件三轮竞态 45.136 秒通过。日志同目录 `settings-scope-fixed.log`。
- [x] 继续核对真实路由发现服务商目录仍要求全局管理员;前端普通用户或降权后的加载不再请求该目录,测试夹具模拟真实四百零三,避免无条件成功响应掩盖页面失败。
- [~] 干净 `3ff59dd` 第一台后端全量及 vet 执行中,单元 `scert-settings-full-20261004-0346.service`,日志 `/var/tmp/scert-settings-clean-20261004-0344/full.log`;后续只有前端兼容增量,没有后端变更。旧候选包已构建但未安装,正式部署必须使用包含最终前端的重新构建产物。
- [ ] 全量 Linux 回归和正式新包部署待完成;线上第一台仍为 `9c26db0`。没有清理生产数据库、操作第二台、修改公共 DNS、增加辅助脚本或备份。
- [✓] 干净 `3ff59dd` 第一台后端全量及 vet 已通过,单元 `scert-settings-full-20261004-0346.service` 为 inactive、success、退出码零;日志 `/var/tmp/scert-settings-clean-20261004-0344/full.log`。实际执行 `go test -p 1 -count=1 -timeout=8m ./...` 后执行 `go vet -p 1 ./...`。这不是三库首次 Web 或外部数据库全部矩阵验收。
- [✓] 最终前端增量提交 `c5774f3` 与 `3ff59dd` 的后端 Git 树均为 `8bf6518caee0cbcc979e89672497a7d754a240fc`,没有后端变更;最终前端全量 286 项及官方构建通过。没有重复执行相同后端全量,也未安装旧候选包。
- [✓] 干净 `c5774f3` 官方发布:`source_dirty=false`、`trimpath=true`、`local_path_check=passed`,仅 Linux amd64。归档 SHA-256 `7aa4e0cf6c79975675231688a8e430398c7da26b8d4750dbad9e5aa1e02a4ff9`,第一台归档及包内二十二个文件摘要全部通过。
- [✓] 第一台通过归档内正式安装器升级;执行单元 `scert-settings-install-20261004-0355.service` 已 inactive、success、退出码零,日志 `/var/tmp/scert-release-settings-c5774f3/install.log`。实际开始为 UTC+8 03:54:20,03:54:29 服务 active;名称中的时间仅为任务标识,不作为实际时间。
- [✓] `/scert/scert` SHA-256 `ff6e2ca82ba5f3661689fc760ebe3a6698865b6f860b07455191d84b1b85e068`;新前端 `index-G-gSx-q1.js` 的磁盘及实际 HTTPS 返回摘要均为 `f3145e70fd60b2a3658a3e652ebba5a03375885cc53103251c993db1c7878d99`,与本地正式包一致。
- [✓] Scert、存储 socket、Nginx active;Nginx 配置检查通过,已有 http2 弃用警告保留。回环定向严格 TLS 就绪返回二百、TLS 校验零;匿名设置返回四百零一、`Cache-Control: private, no-store` 和 `Vary: Cookie`;80 未知挑战返回无缓存四百零四。Scert 仅 `127.0.0.1:8443`,MySQL 仅回环,公网仍由 Nginx 80/443 接入。
- [!] 上述 HTTP 检查均为第一台回环定向内部证据,不计作公共 DNS、浏览器多角色或公共 CA 验收。03:35 公共 DNS 仍指第二台,未获确认切换;未清理生产数据库、操作第二台、修改 DNS 或新增辅助脚本及额外备份。安装器自身升级事务保留不等于另做数据备份。
## 2026年10月4日 真实 lego 客户端隔离协议回归

View File

@ -1,11 +1,12 @@
# Scert 开发任务清单
## 2026年10月4日03:40 系统设置隔离开发进度
## 2026年10月4日03:55 系统设置隔离开发与部署进度
- [x] 全局系统设置 GET/PUT 超级管理员限制、私有无缓存响应、前端会话先行和并发旧响应拒绝已实现。
- [✓] 全局系统设置 GET/PUT 超级管理员限制、私有无缓存响应、前端会话先行和并发旧响应拒绝已实现;普通角色不请求管理员目录。
- [✓] 前端 286 项全量及构建通过,包含旧系统配置清理及普通角色正常工作台;修复后第一台后端设置专项通过。
- [~] 第一台 HTTP API 全量、vet、三轮专项竞态仍运行;尚不能标记本批已上线。
- [ ] 干净 Linux 全量、发行构建、第一台升级与实际入口复核。
- [✓] 第一台 HTTP API 全量、vet、三轮专项竞态及随后干净 Linux 全量、vet 均通过,执行单元已成功终止。
- [✓] 干净 `c5774f3` 正式 Linux 包已部署第一台,运行文件和实际前端响应摘要一致;就绪及匿名设置无缓存拒绝完成内部复核,应用和数据库仍回环监听。
- [ ] 公共入口实际角色浏览器验证尚未完成;本批不重复第二台主程序测试。
- [!] DNS 多账户、CNAME、三库首次 Web、正常公共入口、系统邮件和密码重置仍有未完成任务;总体不宣称开发或生产验收全部完成。
## 2026年10月4日03:14 HTTP 验证开发与部署更新

View File

@ -1,12 +1,13 @@
# Scert 整改任务执行清单
## 2026年10月4日03:40 系统设置隔离任务
## 2026年10月4日03:55 系统设置隔离任务
- [✓] 需求确认:全局系统设置仅超级管理员读写;普通管理员仍可使用项目工作台,不能因设置接口被拒绝而整页失败。
- [x] 后端读取与写入统一实时权限和无缓存边界;前端按会话加载、清除旧配置并隔离并发响应。
- [✓] 后端读取与写入统一实时权限和无缓存边界;前端按会话加载、清除旧配置并隔离并发响应,普通角色不请求专属管理目录。
- [✓] 前端全量 286 项和生产构建通过;旧源码后端红测已确认漏洞,修复后设置专项通过。
- [~] 第一台首批全量两项旧权限契约失败已修正;HTTP API 全量、vet、三轮专项竞态复跑中,单元为 `scert-settings-scope-fixed-20261004-0343.service`。首批失败记录保留。
- [ ] 干净源码 Linux 全量回归、正式发行构建及第一台部署复审。
- [✓] 第一台首批全量两项旧权限契约失败已修正;HTTP API 全量、vet、三轮专项竞态复跑成功,单元 `scert-settings-scope-fixed-20261004-0343.service` 已 inactive、success、退出码零。首批失败记录保留。
- [✓] 干净源码 Linux 全量及 vet 成功结束,最终包 `c5774f3` 已完成第一台正式安装、运行摘要及内部严格 TLS 复核。
- [ ] 公共浏览器真实角色矩阵待完成;不能把回环检查计为公网最终验收。
- [!] 正常公共域名、系统发信授权、三库首次 Web 与剩余 DNS/ACME 门禁仍待完成;第二台只做推送,不重复主程序测试。
本节沿用已确认需求,检查点 `8b26cbf` 已推送;详细失败和复跑证据见《Linux生产流程测试记录》。

View File

@ -1,15 +1,16 @@
# Scert 整改、合并与优化清单
## 2026年10月4日03:40 系统设置读取隔离
## 2026年10月4日03:55 系统设置隔离与第一台升级
本节按运行环境 UTC+8 记录,优先于历史状态。本批检查点 `8b26cbf` 已提交推送;只在第一台隔离工作树运行后端测试,尚未替换线上程序。
本节按运行环境 UTC+8 记录,优先于历史状态。本批检查点 `8b26cbf`、实现 `3ff59dd` 和前端兼容增量 `c5774f3` 已提交推送;第一台已通过官方安装器升级至干净 `c5774f3`,第二台未操作。
- [x] 系统设置 GET 与 PUT 均限制为实时超级管理员会话;成功、未登录和越权响应均禁止缓存,不改变项目 DNS 账户的独立权限。
- [x] 工作台先获取实时会话,仅超级管理员请求系统设置;重载先清除旧系统配置和未保存凭据,并拒绝旧并发响应覆盖新会话。
- [✓] 系统设置 GET 与 PUT 均限制为实时超级管理员会话;成功、未登录和越权响应均禁止缓存,不改变项目 DNS 账户的独立权限。
- [✓] 工作台先获取实时会话,仅超级管理员请求系统设置;重载先清除旧系统配置和未保存凭据,并拒绝旧并发响应覆盖新会话。普通角色也不再请求管理员专属服务商目录。
- [✓] 前端全量 286 项及 Vite 构建通过;包括普通管理员、普通用户、超级管理员、会话失败、降权、设置拒绝和旧响应竞争。旧保存契约夹具补充真实超级管理员会话,原数据断言未放宽。
- [✓] 第一台旧源码红测确认普通管理员原可读全局配置;修复后设置专项已通过。
- [~] 第一台首批 HTTP API 全量发现两项旧权限契约测试不适配收紧后的权限;已补充系统设置拒绝断言并保留普通管理访问边界,正在复跑全量、静态检查和三轮专项竞态,以执行单元最终状态为准。
- [ ] 干净提交全量 Linux 回归、正式发行包构建及第一台升级后复核。
- [✓] 第一台首批 HTTP API 全量两项旧权限契约失败已修正,失败记录保留;HTTP API 全量、vet 和三轮专项竞态复跑成功,随后干净源码 Linux 全量与 vet 也已成功终止。
- [✓] 干净 `c5774f3` 官方 Linux 包构建、路径及摘要检查通过,第一台安装任务成功结束。运行文件和实际 HTTP 返回的新前端摘要一致,回环严格 TLS 就绪正常,匿名设置返回四百零一并禁止缓存。
- [ ] 本批真实超级管理员与普通管理员公共浏览器会话复核仍待公共域名入口切换;不以回环定向验证代替公网或全部角色实机验收。
- [!] 第一台正常公共域名入口、系统发信及密码重置、三库首次 Web、DNS 多账户与 CNAME 完整生命周期、公共 CA 签发和总体生产验收仍未完成。不以本批权限修复替代整体门禁。
## 2026年10月4日03:14 HTTP 验证回归与第一台部署

View File

@ -486,7 +486,7 @@ P0-06 与 P0-07 均维持 `[~]`,六阶段中的隔离、生产和最终验收
下一步完成开发阶段剩余非权限项后,再统一执行生产构建、部署和实机验收。
## 本轮开发进度(2026-09-29 22:34)
- [x] 全局系统设置读取与修改均收紧为超级管理员权限;普通管理员保留 DNS 服务商目录及授权范围内 DNS 账户归属信息的读取能力,不再读取全局系统配置。2026年10月4日补读取隔离,部署状态见《Linux生产流程测试记录》。
- [✓] 全局系统设置读取与修改均收紧为超级管理员权限;普通管理员保留 DNS 服务商目录及授权范围内 DNS 账户归属信息的读取能力,不再读取全局系统配置。2026年10月4日完成读取隔离回归、第一台正式升级及内部复核,公共浏览器角色验收边界见《Linux生产流程测试记录》。
- [x] DNS 在线测试、阿里云 DNS 检查和全局批量续期已收紧为超级管理员操作;前端只读、按钮隐藏和后端拒绝路径均已补充。
- [x] 本批次已补充对应 HTTP 与前端回归测试,代码和进度记录已提交并推送 `ba6bd80`。
- [~] 后续仍需完成回归执行、正式构建、三数据库、浏览器清缓存、密码 SSH、远端部署及生产矩阵验证。

View File

@ -1,10 +1,11 @@
# 核心能力任务规格
## 2026年10月4日03:40 元数据读取边界补强
## 2026年10月4日03:55 元数据读取边界补强
- [x] 全局系统设置仅允许超级管理员读取和修改;普通管理员不再保留全局 SMTP、ACME、DNS 项目及路径元数据读取权限。项目 DNS 账户独立授权不变。
- [✓] 全局系统设置仅允许超级管理员读取和修改;普通管理员不再保留全局 SMTP、ACME、DNS 项目及路径元数据读取权限。项目 DNS 账户独立授权不变。
- [✓] 前端角色加载和并发隔离已补回归,全量 286 项及构建通过;第一台后端设置专项通过。
- [~] 第一台 HTTP API 全量、静态检查及专项竞态执行中;部署复审、其余元数据通道、完整多账户和 CNAME 生命周期仍未完成。
- [✓] 第一台 HTTP API 全量、静态检查、专项竞态及干净源码后端全量均成功终止;正式 `c5774f3` 已在第一台完成升级及内部摘要、严格 TLS 和匿名拒绝复核。
- [~] 公共浏览器真实角色、其余元数据通道、完整多账户和 CNAME 生命周期仍未完成。
以上不整项关闭 P1 或总体生产门禁,证据以《Linux生产流程测试记录》为准。