浅念
|
f22786d746
|
refactor: 提取共享信封模块 EnvelopeMixin/ok
auth.py 的 _EnvelopeMixin/_ok 提取到 tracker/api/envelope.py(去下划线前缀),
auth.py 改为 import 使用;collect.py 的 finalize_response 含 ACAO 回显逻辑
保留在自身视图,仅注释指向未来收敛。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-15 14:25:14 +08:00 |
|
浅念
|
7ff1536fbf
|
fix: auth 畸形body防御/字段校验信封/用户名校验/429 测试
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-15 14:18:37 +08:00 |
|
浅念
|
754ae1d39d
|
feat: JWT 登录与用户接口
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-15 14:01:59 +08:00 |
|
浅念
|
678d215b31
|
fix: 采集接口 origin urlsplit/finalize_response 信封/CL 防御
审查三项必修:
1. Origin host 提取改 urlsplit(封堵 https://evil.com/?x=https://www.a.com
类查询串绕过);"null" Origin 视为无 host 走 allow_no_origin;
Referer 回显死逻辑一并清理,ACAO 只回显真正的 Origin 头。
2. finalize_response 统一钩子:429/ParseError 等 DRF 异常响应补 ACAO +
{code,data,message} 信封(浏览器 SDK 需读错误体,误判网络错误重试会
打爆限流器);删 post/_deny/options 三处临时加头代码。
3. Content-Length isdecimal 防御("abc" → 400 非 500;isdigit 放过 "²"
而 int("²") 仍崩,isdecimal 与 int() 可解析集精确对齐)。
锁定测试 ×4:429 信封+ACAO / 坏 JSON 信封+ACAO / 查询串绕过 403 / 畸形 CL 400。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-15 13:24:31 +08:00 |
|
浅念
|
cf04db794b
|
feat: 采集接口(域名白名单/限流/textplain解析/幂等)
POST /api/collect/batch:text/plain JSON 解析(ParseError 400 防 500)、
域名白名单/站点停用/未知站点统一 403 not_allowed 防枚举、
Anon 限流(collect scope,get_rate 读实时 api_settings 修 import 固化)、
occurred_at ISO 归一(naive 补 UTC)、XFF 末段取 IP + ::ffff: 归一、
成功/拒绝分支均回显 ACAO 供 SDK 读响应。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-15 13:07:56 +08:00 |
|