Skip to content

Reader Pro v4.0.7-restored.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 10:22
· 347 commits to legacy since this release

Reader Pro v4.0.7-restored.7

这是恢复版的安全补丁发布,重点修复请求日志可能记录认证信息的问题。构建与部署均使用 GitHub 托管 Runner,不使用生产服务器上的自托管 Runner。

本次发布

  • 停止记录请求查询参数,避免 accessToken、secureKey 等认证信息进入应用日志。
  • 停止记录请求正文,避免登录密码及其他业务数据进入应用日志。
  • 请求日志只保留 HTTP 方法、规范化路径、响应状态码和耗时。
  • 过滤路径中的回车、换行和制表符,并限制日志路径长度,防止日志注入和异常放大。
  • 增加查询参数脱敏和控制字符处理的自动化回归测试。
  • 生产部署将应用日志目录收紧为 750、日志文件收紧为 640。
  • 生产 SSH 关闭密码和键盘交互认证,root 仅允许公钥认证,并限制单来源预认证并发。
  • 发布制品上传支持断点续传、连接保活和退避重试。
  • 部署作业使用 GitHub 的 macOS 托管 Runner,以避开 Ubuntu 托管 Runner 当前到生产 VPS 的异常入站路由。
  • 生产镜像从已验证的只读运行时基线叠加新 JAR,不再在发布窗口依赖不可用的 Docker Hub 镜像代理。

已验证

  • Windows/JDK 11 环境执行 clean test bootJar 成功。
  • 新增日志安全回归测试通过。
  • 生产服务器标准 22 端口的公钥登录在 SSH 加固后验证成功。
  • macOS GitHub 托管 Runner 已成功连接生产服务器并完成 73 MB 制品上传与 SHA-256 校验。
  • 运行时基线的离线覆盖构建已在独立测试镜像上通过,保留非 root 用户、入口命令和 Temurin JRE 11。
  • GitHub Actions 会再次执行干净构建、生产健康检查、UTF-8 静态资源校验和公网烟雾测试。

安全说明

v4.0.7-restored.1 的应用日志可能包含请求查询参数和较短的请求正文。本次部署完成后会对服务器上受影响的历史应用日志做定点脱敏,并验证测试用敏感标记不会再次写入日志。建议曾复用登录密码的用户更换该密码;本项目不会在发布过程中自动修改用户数据或凭据。

生产 SSH 已禁用密码登录。后续服务器管理必须使用已配置的 SSH 公钥。

已知问题与验证边界

  • 这是恢复版本:部分实现来自与原始 JAR 接近但不保证同版的源码,仍需继续做黑盒差分验证。
  • WebDAV、SSE 长连接、大文件下载、第三方书源和全部写接口尚未完成系统性回归。
  • 许可证中心是为失效旧中心重新实现的兼容服务,不保证覆盖旧中心所有未观察到的协议行为。
  • 前端暂时保留 JAR 内旧版界面;尚未接入 Rust/master 分支的 Vue 3 设计。
  • 当前只对一个有效账户完成端到端登录与数据读取验证,其他账户及极端数据尚待覆盖。
  • 服务器既有 Nginx 配置存在与本项目无关的 cdn.medwarp.cn 重复 server_name 警告;不影响本域名启动,但应另行清理。
  • 离线生产镜像依赖服务器上保留的 runtime-jdk11-jammy-v1 基线;若迁移到新服务器,需要先从已验证镜像归档恢复该基线,或在可访问 Docker Hub 时重新构建。

发布记录说明

v4.0.7-restored.2 至 .5 没有激活生产部署;.6 已完成制品上传和 SHA-256 校验,但拉取 Docker 基础镜像元数据时 TLS 超时,流水线自动回滚至 .1。为保持 Git 标签不可变,本版本使用新的 .7 标签和离线运行时基线发布。

回滚

生产部署在替换前保存上一版 JAR、Docker 镜像和 Nginx 配置。健康检查、UTF-8 校验或公网烟雾测试失败时,流水线会自动恢复上一版本。历史日志脱敏属于独立的安全处置,不随应用版本回滚恢复敏感内容。