Skip to content

Rate limiting & DoS resilience checks - #29

Merged
emmanuelgautier merged 1 commit into
mainfrom
feat/rate-limiting
Nov 10, 2026
Merged

emmanuelgautier merged 1 commit into
mainfrom
feat/rate-limiting

Conversation

@emmanuelgautier

Copy link
Copy Markdown
Member

Closes #12.

Adds the ratelimit category (three aggressive-suite checks, run only with --aggressive) with a shared bounded-burst helper (rlprobe). Bursts are deliberately small (~20–30 requests) — they measure throttling behaviour, not a flood.

  • ratelimit.missing_throttling — bursts from one client and reports when none is throttled (informational-to-low: backend/external throttling isn't visible to a single-client burst).
  • ratelimit.spoofed_ip_bypass — for a throttling proxy, confirms a plain request is still throttled, then flips the response back to success by rotating a spoofed IP in X-Forwarded-For/X-Real-IP/True-Client-IP/X-Client-IP/X-Forwarded; skips when no throttling is seen.
  • ratelimit.oversized_header — sends one 128 KiB header and flags acceptance instead of a 431/400/413 rejection.

Checklist coverage

  • Per-IP / per-token throttling enforced at the proxy
  • Rate-limit bypass via spoofed client-IP headers
  • Oversized header / oversized request handling
  • Slowloris / slow-body resistance — intentionally deferred (genuine DoS that can degrade a live target even when bounded)
  • Connection and keepalive limits under load — intentionally deferred (same reason)

Deferred items are documented in docs/checks/ratelimit.mdx. Includes registration and a category test (no-limit / per-client-key / global-key / reject-big stand-ins).

@emmanuelgautier
emmanuelgautier force-pushed the feat/rate-limiting branch 2 times, most recently from f409f83 to c2ddebb Compare November 10, 2026 00:00
@emmanuelgautier
emmanuelgautier merged commit 52cfb3f into main Nov 10, 2026
4 checks passed
@emmanuelgautier
emmanuelgautier deleted the feat/rate-limiting branch November 10, 2026 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rate Limiting & DoS Resilience

1 participant