The ingest endpoint is unauthenticated and hostile — treat every submission as untrusted UGC. - [ ] Bot gate: Cloudflare Turnstile (or hCaptcha) verified server-side - [ ] Rate limiting per-IP/origin — slowapi **backed by Redis** (in-memory default is per-worker, fails under multiple workers) - [ ] Payload caps (body, screenshot bytes, field lengths) - [ ] CORS origin allowlist + documented CSP guidance for embedders - [ ] Server-side repo/site resolution (browser never names the target); moderation/holding state Design: design.md (Public-endpoint hardening) · #1
The ingest endpoint is unauthenticated and hostile — treat every submission as untrusted UGC.
Design: design.md (Public-endpoint hardening) · #1