
Bezpieczeństwo i uwierzytelnianie
JWT, OAuth2, zarządzanie sesjami, RBAC, crypto/rand vs math/rand, konfiguracja TLS, bezpieczne kodowanie, najlepsze praktyki bezpieczeństwa
1Jaka jest główna różnica między tokenami JWT a tradycyjnymi sesjami serwerowymi?
Jaka jest główna różnica między tokenami JWT a tradycyjnymi sesjami serwerowymi?
Odpowiedź
Tokeny JWT są bezstanowe (brak stanu po stronie serwera) i zawierają wszystkie niezbędne informacje zakodowane w samym tokenie. W przeciwieństwie do tradycyjnych sesji, które przechowują dane w pamięci lub bazie danych po stronie serwera, mając jedynie session ID po stronie klienta, JWT przenosi odpowiedzialność za przechowywanie na klienta. Ułatwia to skalowanie poziome, ponieważ między serwerami nie jest wymagany żaden współdzielony stan.
2Jakie są trzy części tokenu JWT oddzielone kropkami?
Jakie są trzy części tokenu JWT oddzielone kropkami?
Odpowiedź
JWT składa się z trzech części zakodowanych w Base64URL i oddzielonych kropkami: Header (algorytm i typ), Payload (claims/dane) oraz Signature (weryfikacja integralności). Struktura to header.payload.signature. Header wskazuje algorytm podpisu (HS256, RS256), payload zawiera claims (iss, sub, exp), a signature zapewnia, że token nie został zmodyfikowany.
3Który standardowy claim JWT definiuje znacznik czasu wygaśnięcia tokenu?
Który standardowy claim JWT definiuje znacznik czasu wygaśnięcia tokenu?
Odpowiedź
Claim 'exp' (expiration time) definiuje znacznik czasu Unix, po którym token nie powinien być już akceptowany. Standardowe claims obejmują również 'iss' (issuer), 'sub' (subject), 'aud' (audience), 'iat' (issued at) i 'nbf' (not before). Walidacja claimu exp jest kluczowa, aby ograniczyć czas ważności tokenów i zmniejszyć skutki kradzieży tokenu.
Jaka jest główna różnica między HS256 a RS256 przy podpisywaniu JWT?
Jak unieważnić JWT przed jego naturalnym wygaśnięciem?
+21 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Obsługa błędów
Podstawy goroutines
Channels
Go Modules
Serwer HTTP
Klient HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
gRPC
Reflection
Zarządzanie pamięcią
Optymalizacja wydajności
Generics
Go Design Patterns
Microservices
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
Opanuj Go na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo