Commit Graph

1 Commits

Author SHA1 Message Date
浅念 9f556ebe95 feat(site-import): SSRF 连接层校验 fetch 原语
- ValidatingBackend:connect_tcp 处 anyio.getaddrinfo 解析→禁段校验→
  只连已验 IP 字面量(anyio 对 IP 字面量跳过 DNS,闭合 rebinding TOCTOU;
  TLS/SNI 由 httpcore 以原 hostname 包,证书校验不受影响)
- 双层防线:fetch URL 层预检(scheme/host/端口白名单+IP 字面量禁段)
  + 连接层逐跳 DNS 后校验;手动重定向 ≤5 跳每跳重校验
- 私有口(_pool 替换/AnyIOStream/异常映射)由版本探针测试钉位
- tests/test_safe_fetch.py 29 条:禁段参数化/连接层拒绝/重定向私网拦截/
  上限边界/请求真实路由经校验后端(anyio 层打桩离线全链路)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 18:17:19 +08:00