Przejdź do treści
Bezpieczeństwo

Bezpieczeństwo API: uwierzytelnianie, rate limiting i dobre praktyki

1 lipca 2026 7 min czytania

API dostępne publicznie przez internet jest narażone na próby nadużyć: nieautoryzowany dostęp, brute force, scraping danych, przeciążenie serwera. Kilka standardowych mechanizmów znacząco redukuje te ryzyka.

Uwierzytelnianie przez tokeny

Podstawowe uwierzytelnianie przez login i hasło w każdym żądaniu to zły pomysł. Standard to tokeny - najczęściej JWT (JSON Web Tokens) lub API keys. JWT zawiera zakodowane dane o użytkowniku i wygasa po określonym czasie. API key to długi losowy ciąg znaków przypisany do klienta, który dołącza go do każdego żądania w nagłówku Authorization.

OAuth 2.0 dla dostępu trzecich stron

Gdy Twoje API ma być dostępne dla zewnętrznych aplikacji działających w imieniu użytkowników, OAuth 2.0 jest standardem. Zamiast udostępniać hasło zewnętrznej aplikacji, użytkownik autoryzuje dostęp dla konkretnych zakresów. Implementacje OAuth 2.0 są dostępne dla PHP przez dedykowane biblioteki.

Rate limiting

Bez limitu żądań, jeden klient może wysyłać tysiące requestów na minutę, co obciąża serwer i może być formą ataku. Rate limiting ogranicza liczbę żądań per klucz API, per IP lub per użytkownika w określonym przedziale czasu. Przekroczenie limitu zwraca kod 429 Too Many Requests. Nginx i API gatewaye obsługują rate limiting na poziomie infrastruktury.

Walidacja danych wejściowych

Każde żądanie do API powinno być walidowane: typy danych, zakresy wartości, wymagane pola, format. Brak walidacji otwiera ryzyko injection attacks i nieoczekiwanego zachowania aplikacji. Symfony Validator, Laravel Validation lub dedykowane biblioteki udostępniają mechanizmy walidacji z czytelnymi regułami.

HTTPS i bezpieczeństwo transportu

API dostępne przez HTTP (bez szyfrowania) to transmisja danych w czystym tekście. Tokeny, dane użytkowników, dane zamówień przesyłane HTTP mogą być przechwycone. HTTPS to absolutne minimum. Certyfikaty SSL przez Let Encrypt są darmowe i mają wsparcie w większości paneli hostingowych.

Logowanie i audyt

Każde żądanie do wrażliwych endpointów powinno być logowane: kto, kiedy, co. Logi są niezbędne przy dochodzeniu po incydencie bezpieczeństwa. Przechowuj logi przez odpowiedni czas i chroń je przed nieautoryzowanym dostępem. Sentry lub dedykowane SIEM zbierają i analizują logi centralnie.