Skip to content

Enhance rate limiting with user-based limits and proxy handling #17

Description

@ErnieAtLYD

Problem

Current rate limiting relies solely on IP addresses, which can be unreliable behind proxies/CDNs and doesn't account for authenticated users who should have different limits.

Solution

Implement enhanced rate limiting with user-based limits, better proxy handling, and configurable limit tiers.

Tasks

  • Improve IP detection for proxy/CDN scenarios
  • Add user-based rate limiting (when authentication is added)
  • Implement tiered rate limiting (anonymous, authenticated, premium)
  • Add distributed rate limiting for multi-instance deployments
  • Add rate limiting bypass for admin users
  • Implement sliding window rate limiting
  • Add rate limiting headers in API responses

Rate Limiting Tiers

  • Anonymous: 5 requests/hour
  • Authenticated: 50 requests/hour
  • Premium: 200 requests/hour
  • Admin: Unlimited

Proxy Handling Improvements

  • Better X-Forwarded-For parsing
  • Support for X-Real-IP headers
  • Cloudflare CF-Connecting-IP support
  • Rate limiting by user session when IP is unreliable

Acceptance Criteria

  • Rate limits work correctly behind proxies/CDNs
  • Different user tiers have appropriate limits
  • Rate limiting state is shared across server instances
  • Users receive clear rate limit information in responses
  • Rate limiting doesn't break legitimate usage patterns

Priority

Medium - Important for fair usage but current implementation works

Related

Rate limiting concerns from PR #12 code review

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions