JWT Błędy bezpieczeństwa i jak ich unikać

JWT ma duże możliwości w zakresie uwierzytelniania API, ale wiele incydentów produkcyjnych wynika z błędów wdrożeniowych, a nie z samego JWT. Jeśli Twoja aplikacja korzysta z tokenów dostępu, tokenów odświeżania i oświadczeń ról, Twoje bezpieczeństwo zależy od szczegółów.
1) Akceptacja dowolnego algorytmu
Nigdy nie ufaj algorytmowi przesłanemu przez sam nagłówek tokena. Twój serwer musi wymuszać jawną listę dozwolonych (na przykład tylko RS256).
- Przypnij oczekiwane algorytmy po stronie serwera.
- Odrzuć tokeny z brakującymi lub nieoczekiwanymi
alg. - Używaj dojrzałych, aktywnie utrzymywanych bibliotek JWT.
2) Długowieczne tokeny dostępu
Jeśli token dostępu wycieknie i pozostanie ważny przez kilka dni, atakujący ma za dużo czasu. Dbaj o krótkotrwałość tokenów dostępu i polegaj na przepływie odświeżania.
- Token dostępu: krótki TTL (5-15 minut).
- Odśwież token: dłuższy TTL + rotacja + unieważnienie.
- Unieważnij sesje w przypadku podejrzanej aktywności.
3) Wyciek tokenów w adresach URL i dziennikach
Nigdy nie umieszczaj JWT w parametrach zapytania. Adresy URL trafiają do dzienników, analiz, historii przeglądarki i stron odsyłających.
- Wyślij tokeny w
Autoryzacja: Nośnik ...nagłówek. - Wyczyść nagłówki uwierzytelniania z dzienników i śladów APM.
- Maskuj wrażliwe pola w raportowaniu błędów klienta.
4) Słaba weryfikacja roszczenia
Zatwierdź iss, aud, exp, nbf i iat. Sprawdź także ograniczenia biznesowe, takie jak identyfikator dzierżawy i wymagane role.
- Odrzuć tokeny, które wygasły lub nie są jeszcze ważne.
- Powiąż oczekiwanych odbiorców według usługi.
- Nie ufaj oświadczeniom ról bez kontroli po stronie serwera.
5) Brak strategii rotacji kluczy
Klucze wyciekają, certyfikaty wygasają i zdarzają się incydenty. Zaplanuj rotację przed uruchomieniem produkcji.
- Użyj nagłówków
kidi punktów końcowych JWKS. - Obsługa nakładających się klawiszy podczas rotacji okien.
- Monitoruj błędy weryfikacji podpisu pod kątem anomalii.
Praktyczna lista kontrolna hartowania
- Wymuś listę dozwolonych ścisłych algorytmów.
- Użyj krótkotrwałych tokenów dostępu.
- Rotuj tokeny odświeżania i unieważniaj wsparcie.
- Bezpiecznie przechowuj tokeny (preferuj pliki cookie httpOnly).
- Zweryfikuj wszystkie standardowe i krytyczne oświadczenia biznesowe.
- Wdrożenie rotacji kluczy z monitorowaniem.
Powiązane narzędzia
- JWT Dekoder — sprawdź bezpiecznie nagłówek i ładunek.
- Generator skrótu — sprawdź odciski palców wiadomości i plików.
- Generator haseł — utwórz silne klucze tajne dla kont administratora i usług.