
Sicurezza e autenticazione
JWT, OAuth2, gestione delle sessioni, RBAC, crypto/rand vs math/rand, configurazione TLS, codifica sicura, migliori pratiche di sicurezza
1Qual è la principale differenza tra i token JWT e le sessioni server tradizionali?
Qual è la principale differenza tra i token JWT e le sessioni server tradizionali?
Risposta
I token JWT sono stateless (senza stato lato server) e contengono tutte le informazioni necessarie codificate all'interno del token stesso. A differenza delle sessioni tradizionali che memorizzano i dati in memoria o nel database lato server con solo un session ID lato client, JWT sposta la responsabilità della memorizzazione sul client. Questo facilita lo scaling orizzontale poiché non è richiesto alcuno stato condiviso tra i server.
2Quali sono le tre parti di un token JWT separate da punti?
Quali sono le tre parti di un token JWT separate da punti?
Risposta
Un JWT è composto da tre parti codificate in Base64URL e separate da punti: Header (algoritmo e tipo), Payload (claims/dati) e Signature (verifica dell'integrità). La struttura è header.payload.signature. L'header indica l'algoritmo di firma (HS256, RS256), il payload contiene i claims (iss, sub, exp) e la signature garantisce che il token non sia stato manomesso.
3Quale claim JWT standard definisce il timestamp di scadenza del token?
Quale claim JWT standard definisce il timestamp di scadenza del token?
Risposta
Il claim 'exp' (expiration time) definisce il timestamp Unix oltre il quale il token non deve più essere accettato. I claims standard includono anche 'iss' (issuer), 'sub' (subject), 'aud' (audience), 'iat' (issued at) e 'nbf' (not before). La validazione del claim exp è cruciale per limitare la durata di validità dei token e ridurre l'impatto di un token rubato.
Qual è la principale differenza tra HS256 e RS256 per firmare i JWT?
Come revocare un JWT prima della sua scadenza naturale?
+21 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Go Design Patterns
Microservices
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis