
Безпека та автентифікація
JWT, OAuth2, керування сесіями, RBAC, crypto/rand vs math/rand, конфігурація TLS, безпечне кодування, найкращі практики безпеки
1У чому полягає основна різниця між токенами JWT і традиційними серверними сесіями?
У чому полягає основна різниця між токенами JWT і традиційними серверними сесіями?
Відповідь
Токени JWT є stateless (без стану на стороні сервера) і містять усю необхідну інформацію, закодовану в самому токені. На відміну від традиційних сесій, які зберігають дані в пам'яті або базі даних на стороні сервера, маючи лише session ID на стороні клієнта, JWT переносить відповідальність за зберігання на клієнта. Це полегшує горизонтальне масштабування, оскільки між серверами не потрібен спільний стан.
2Які три частини токена JWT розділені крапками?
Які три частини токена JWT розділені крапками?
Відповідь
JWT складається з трьох частин, закодованих у Base64URL і розділених крапками: Header (алгоритм і тип), Payload (claims/дані) та Signature (перевірка цілісності). Структура має вигляд header.payload.signature. Header вказує алгоритм підпису (HS256, RS256), payload містить claims (iss, sub, exp), а signature гарантує, що токен не був змінений.
3Який стандартний claim JWT визначає мітку часу закінчення терміну дії токена?
Який стандартний claim JWT визначає мітку часу закінчення терміну дії токена?
Відповідь
Claim 'exp' (expiration time) визначає мітку часу Unix, після якої токен більше не повинен прийматися. Стандартні claims також включають 'iss' (issuer), 'sub' (subject), 'aud' (audience), 'iat' (issued at) та 'nbf' (not before). Перевірка claim exp є критично важливою для обмеження терміну дії токенів і зменшення наслідків викрадення токена.
У чому полягає основна різниця між HS256 і RS256 для підпису JWT?
Як відкликати JWT до його природного закінчення терміну дії?
+21 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно