SIGN IN SIGN UP

Fix input handling and IP detection for public deploy

- Reject usernames with path-traversal characters before building the
  Depop API URL
- Catch requests.exceptions.InvalidHeader (raised on CRLF in a pasted
  cookie) without letting its message - which embeds the raw cookie
  value - reach the rendered error page
- Rate-limit by Cloudflare's CF-Connecting-IP (Render fronts every app
  with Cloudflare) instead of the ProxyFix-derived remote_addr, which
  was resolving to Cloudflare's edge IP for every visitor

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
I
Ian Lee committed
3b24181e0859727ee29e4d260e279c0ea8d8ace6
Parent: 93f2b0c