Back to list
igbuend

limit-request-rate

by igbuend

A repository of security related skills - like secure code review and pentesting - for Claude and other AI.

2🍴 1📅 Jan 24, 2026

SKILL.md


name: limit-request-rate description: Security pattern for implementing rate limiting and throttling. Use when protecting against brute-force attacks, DoS/DDoS mitigation, preventing resource exhaustion, or limiting API abuse. Addresses "Entity absorbs excessive resources" problem.

Limit Request Rate Security Pattern

Limits the number of requests an entity can make within a given timeframe, preventing resource exhaustion and brute-force attacks.

Problem Addressed

Entity absorbs excessive resources: An attacker floods the system with requests, either to:

  • Exhaust system resources (DoS)
  • Brute-force authentication credentials
  • Enumerate valid identifiers
  • Abuse expensive operations

Core Components

RoleTypeResponsibility
EntityEntityMakes requests to system
EnforcerEnforcement PointIntercepts and rate-checks requests
LimiterDecision PointDecides if request within limits
Policy ProviderInformation PointManages rate limit rules
History StoreStorageTracks request history per entity

Data Elements

  • id: Identifier for the entity (IP, user, API key)
  • history: Record of entity's previous requests
  • policy: Rules defining allowed request rates
  • action: The requested operation

Rate Limiting Flow

Entity → [action] → Enforcer
Enforcer → [check(id)] → Limiter
Limiter → [get_policy(id)] → Policy Provider
Policy Provider → [policy] → Limiter
Limiter → [get_history(id)] → History Store
History Store → [history] → Limiter
Limiter → [allowed/denied] → Enforcer
Enforcer → [action] → System (if allowed)
        → [429 Too Many Requests] → Entity (if denied)

Entity Identification

How to identify entities for rate limiting:

IdentifierProsCons
IP AddressSimple, no auth neededNAT/proxy issues, IPv6 abundant
User/API KeyAccurate per-userRequires authentication
Session IDWorks for logged-in usersSession rotation may reset
CombinationMore preciseComplex implementation

Recommendation: Use multiple identifiers where possible.

Rate Limiting Algorithms

Fixed Window

  • Count requests in fixed time periods
  • Simple but allows bursts at window boundaries
  • Example: 100 requests per minute

Sliding Window

  • Rolling time window
  • Smoother rate enforcement
  • More memory intensive

Token Bucket

  • Tokens added at fixed rate
  • Request consumes token
  • Allows controlled bursts
  • Good for APIs

Leaky Bucket

  • Requests queued and processed at fixed rate
  • Smooths traffic
  • May add latency

Policy Configuration

Define policies based on:

  • Endpoint sensitivity: Stricter limits on auth endpoints
  • User type: Different limits for free vs. paid users
  • Operation cost: Stricter limits on expensive operations
  • Time of day: Adjusted limits for peak periods

Example policies:

/login:        5 requests per minute per IP
/api/search:   100 requests per minute per API key
/api/export:   10 requests per hour per user

Security Considerations

Authentication Endpoints

  • Aggressive rate limiting on login
  • Limit by IP AND username
  • Exponential backoff after failures
  • Consider CAPTCHA after threshold

Distributed Attacks

  • Single IP limits insufficient
  • Monitor aggregate patterns
  • Consider global rate limits
  • Use reputation services

Response Headers

Inform clients of limits:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640000000
Retry-After: 60

Failure Handling

  • Rate limiting infrastructure must be resilient
  • Fail-open vs. fail-closed decision
  • Don't let rate limiter become DoS vector

Bypass Prevention

  • Ensure rate limiter cannot be circumvented
  • Apply at edge/gateway level
  • Rate limit before expensive operations

Implementation Approaches

Application Level

  • Fine-grained control
  • Access to user context
  • Higher overhead

API Gateway Level

  • Central enforcement
  • Consistent across services
  • May lack context

Infrastructure Level (CDN/WAF)

  • Handles volumetric attacks
  • Limited application context
  • Good first line of defense

Recommendation: Defense in depth—use multiple levels.

Implementation Checklist

  • Authentication endpoints rate limited
  • Limits per IP AND per user where applicable
  • Appropriate algorithm selected
  • Rate limit headers returned
  • 429 responses with Retry-After
  • Limits at multiple levels (app, gateway, CDN)
  • Monitoring and alerting on limits hit
  • Distributed attack patterns detected
  • Expensive operations protected
  • Fail behavior defined
  • Authentication (protect login endpoints)
  • Authorisation (rate limit authorization checks)
  • Data validation (rate limit before validation)

References

Score

Total Score

70/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon