Skip to content

feat: SHA-256 完整性校验体系(端点/下载头/验证页/元数据+GitHub digest 校验)、验证页状态图标、tls_skip_verify 开关 - #20

Merged
leemwood merged 4 commits into
NingZeStudio:mainfrom
lemwoods:main
Sep 18, 2026

Conversation

@lemwoods

Copy link
Copy Markdown
Contributor

概要

四组改动,围绕文件完整性与出站连接可控性,全部向后兼容(v2 纯新增,不动既有响应格式)。

1. 文件 SHA-256 完整性校验(e7ba814)

  • 新增 GET /api/v2/files/integrity?file_path=:返回 {file_path, file_name, size, algorithm: "sha256", sha256}
  • /download/ 响应新增 X-Content-SHA256 头(HEAD 请求不加,避免未授权探测触发读盘)
  • PoW 验证页展示 文件名(大小)+ SHA-256 + GitHub 来源链接
  • 哈希结果带缓存(键 = 绝对路径|size|mtime,上限 1024)
  • 后台品牌更新为「柠泽资源站(miawa)」

2. 资产 hash 写入元数据 + 扫描期 GitHub 校验(114c0c7)

  • ReleaseAssetSimple 新增 sha256(omitempty),index.json 元数据与 v2 API 自动透传
  • 每次扫描经 GitHub API digest 字段校验:本地哈希不一致 → 删除重下(最多 2 次)→ 仍不一致告警并记录本地实际哈希(保证元数据与所服务文件一致,从不 error 中断)
  • go-github v50 无 Digest 字段 → 自定义结构体解析 release JSON

3. 验证页状态图标(806489d)

  • 图标移至「安全验证」标题左侧,随验证状态变化:进行中=转圈、成功=绿色对勾、失败=红色叉(含 aria-label)

4. tls_skip_verify 全局开关(b6dfcc9)

  • 新增配置 tls_skip_verify(默认 false),开启后出站 HTTPS 跳过证书校验
  • 覆盖四条链路:GitHub API 客户端、资产下载器、外部黑名单同步、自更新
  • 适用场景:内网自签/中间人透明代理环境

测试

  • 全量 go test -count=1 ./... 通过(含 5 个新增元数据 hash 单测 + integrity 端点测试)
  • E2E:sharkdp/vivid v0.11.1 全部 19 资产带 sha256 写入 index.json 并经 API 验证;隧道全链路 200

@leemwood
leemwood merged commit f44e2df into NingZeStudio:main Sep 18, 2026
9 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.

2 participants