Do czego służy
Rate limiting chroni aplikację przed nadmiernym obciążeniem ze strony pojedynczego źródła. Stosowany jest głównie na publicznych endpointach: formularzach kontaktowych, API, stronach logowania i endpointach wyszukiwania.
Jak działa
System zlicza żądania z danego adresu IP w oknie czasowym. Po przekroczeniu zdefiniowanego limitu (np. 60 żądań na minutę) kolejne żądania są odrzucane z kodem odpowiedzi HTTP 429 (Too Many Requests).
Modele implementacji
- Fixed window - prosty reset licznika co określony czas (np. co minutę). Łatwy w implementacji, ale podatny na bursts na granicy okien.
- Sliding window - okno przesuwa się z każdym żądaniem, co daje bardziej równomierną kontrolę częstotliwości.
- Token bucket - system przyznaje 'tokeny' w stałym tempie. Każde żądanie zużywa token. Pozwala na krótkie bursts przy zachowaniu średniego limitu.
Zastosowania
- ochrona formularzy przed floodingiem i spamem,
- ochrona API przed nadużyciem,
- ograniczenie skuteczności ataków brute-force na logowanie,
- kontrola kosztów w API z limitem żądań.
Rate limiting a inne mechanizmy
Rate limiting działa na poziomie częstotliwości żądań. Uzupełnia inne warstwy ochrony, takie jak honeypot (wykrywanie botów na poziomie formularza) czy CSP (polityka bezpieczeństwa przeglądarki).