feat: simplify HTTP request signing and publish revised client guide
CSS quality / css-quality (push) Has been cancelled

This commit is contained in:
hectorzhao
2026-09-15 14:58:31 +08:00
parent bcb278be29
commit 18ecf8045f
12 changed files with 1006 additions and 851 deletions
+12
View File
@@ -305,3 +305,15 @@ HTTP-FULL-B02:去除URL IPv6方括号后区分IP字面量与DNS,DNS失败转
截至 2026-09-14T07:49:14.156Z,测试环境精确版本97d133442350b9725422ed4e55386f47e37004fd。HTTP-FULL-B01至B04已修复、提交、推送、标准发布并真实复验;74套809项精确候选测试、格式、Lint、类型、构建及安全门禁通过。235项真实请求/断言中229项通过,另6条原始非通过记录已分类并有复测,不删除失败历史。20条短信19送达/1预期失败退款,23个模拟CMPP Submit,21成功计费单位,净扣6825,余额1848101→1841276。7条上行3歧义隐藏/4匹配且ACK完成;24个Webhook事件22送达/2预设终止,31次真实HTTPS收件,签名、密钥轮换、状态码、退避、超时和人工重试均核验。三个Redis Stream pending/lag均0;本轮待办排空、三个应用停用/凭据撤销、receiver及隧道关闭、hosts原字节恢复。未操作预生产、真实运营商或其他客户配置。
完整矩阵、根因、发布恢复资产/容量与未执行项见 [HTTP全量验收报告](http-api-full-acceptance-20260914.md)。本段更新此前阶段性“待修/待授权/阻塞”状态,不将其当当前状态。
## 2026-09-15 已确认的新请求签名规则(实施中)
本节按用户最终 B6 手册及本轮实施授权,替代前述 R01/3.2 的摘要签名保留要求;历史日期的实现证据仍保留。本轮公开手册采用 B6 内容,将原 2.4 cURL 使用说明移到 1.4;公开阅读器、客户端 iframe 和 MD 下载继续共用 docs/client-http-api-guide.md。
- POSTUTF-8 编码的方法、路径、timestamp、nonce 以 LF 分隔,nonce 后一个 LF,再原样追加 rawBody 字节,直接 HMAC-SHA256。禁止对解析后 JSON 重建正文;POST 缺失 rawBody 时拒绝,避免签署与收到的字节不一致。
- GET:仅四项以 LF 分隔,末尾无 LF,无正文;携带非空正文拒绝。query 仍不参与签名,路径仍不含域名及 query,不新增编码/排序协议。
- 使用原四个鉴权头、路径和凭据;不自动尝试旧摘要算法,不引入隐式双算法。旧签名返回 SIGNATURE_INVALID,既有接入须同步升级。测试环境本轮发布,预生产不发布;回退应用同时恢复原手册,客户须恢复匹配算法。
- 时间戳窗口、nonce Redis 原子去重、租户/应用隔离、白名单、QPS 和日志脱敏保持。发送幂等使用的内部 bodyHash 保持,已有请求快照/计费/消息/队列均不迁移、不补投。Webhook 验签不变。
- 数据模型、基础设施配置和 Gateway 无改动。历史查询 startTime/endTime 能力保留;手册简化介绍不代表删除后台兼容参数。
- 验收:固定 POST/GET 向量、旧签名拒绝、末尾 LF/CRLF/字面反斜杠/正文空格与字段顺序篡改、缺失 rawBody、非空 GET、重放、权限与隔离;真实 HTTP/PG/Redis 验证以隔离数据和无发送请求完成,线上不创建短信或更改客户配置。两段 Node 示例从权威文档提取运行并与全部 HTTP 报文复算;公开页面三尺寸、目录/检索/下载及客户端共享入口验收。按精确提交标准 validate/preflight/prepare/deploy/verify。