clientIP() now takes the RIGHTMOST X-Forwarded-For entry (appended by the trusted Traefik proxy), falling back to X-Real-Ip then RemoteAddr. Spoofed leftmost XFF entries no longer rotate rate-limit buckets. Trust boundary documented in ratelimit.go. Regression tests: spoofed-first-XFF cannot bypass the create limit.
clientIP() now takes the RIGHTMOST X-Forwarded-For entry (appended by the trusted Traefik proxy), falling back to X-Real-Ip then RemoteAddr. Spoofed leftmost XFF entries no longer rotate rate-limit buckets. Trust boundary documented in ratelimit.go. Regression tests: spoofed-first-XFF cannot bypass the create limit.
Fixes #85
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
clientIP() now takes the RIGHTMOST X-Forwarded-For entry (appended by the trusted Traefik proxy), falling back to X-Real-Ip then RemoteAddr. Spoofed leftmost XFF entries no longer rotate rate-limit buckets. Trust boundary documented in ratelimit.go. Regression tests: spoofed-first-XFF cannot bypass the create limit.
Fixes #85