Skip to content

v0.8.3 — 安全性与稳健性增强

Choose a tag to compare

@sllhSmile sllhSmile released this 29 Sep 09:48
· 1 commit to main since this release

主要变更

  • 加固入站 Request ID:限制为最多 128 字节、无空白的可打印 ASCII;非法或超长值改为 UUID v7,并同步回写请求与响应 Header。
  • 增强 HTTP/SDK 内容保护:始终遮蔽 URL userinfo 密码,同时保留用户名、path 与 fragment;文档明确 payload.max_bytes=null 的内存与 OOM 风险。
  • 增强 Guzzle 异常结果处理:fulfilled 但非 PSR-7 ResponseInterface 的值记录为 WARNING,仅记录返回类型,不序列化未知对象或内容。
  • 修复 SQL 日志插值边界:支持 PostgreSQL dollar-quoted body,并避免将 ::cast 误识别为命名参数。
  • 补充 Request ID、URL 脱敏、Guzzle 非标准返回值和 PostgreSQL SQL 的回归测试。

兼容性说明

  • PHP 最低版本仍为 8.2,Hyperf 兼容范围仍为 3.2。
  • RequestContext 新增公开常量 MAX_REQUEST_ID_BYTES,值为 128。
  • 行为调整:带前后空白、控制字符、Unicode 或超长的外部 Request ID 不再 trim 后接受,而是替换为 UUID v7。
  • 无配置迁移或依赖升级要求。

验证

  • PHPUnit:160 tests,1031 assertions,全部通过。
  • PHPStan level 8:无错误。
  • PHP CS Fixer dry-run:无格式差异。
  • git diff --check:通过。