Go

Безпека та автентифікація

JWT, OAuth2, керування сесіями, RBAC, crypto/rand vs math/rand, конфігурація TLS, безпечне кодування, найкращі практики безпеки

24 питань зі співбесід·
Senior
1

У чому полягає основна різниця між токенами JWT і традиційними серверними сесіями?

Відповідь

Токени JWT є stateless (без стану на стороні сервера) і містять усю необхідну інформацію, закодовану в самому токені. На відміну від традиційних сесій, які зберігають дані в пам'яті або базі даних на стороні сервера, маючи лише session ID на стороні клієнта, JWT переносить відповідальність за зберігання на клієнта. Це полегшує горизонтальне масштабування, оскільки між серверами не потрібен спільний стан.

2

Які три частини токена JWT розділені крапками?

Відповідь

JWT складається з трьох частин, закодованих у Base64URL і розділених крапками: Header (алгоритм і тип), Payload (claims/дані) та Signature (перевірка цілісності). Структура має вигляд header.payload.signature. Header вказує алгоритм підпису (HS256, RS256), payload містить claims (iss, sub, exp), а signature гарантує, що токен не був змінений.

3

Який стандартний claim JWT визначає мітку часу закінчення терміну дії токена?

Відповідь

Claim 'exp' (expiration time) визначає мітку часу Unix, після якої токен більше не повинен прийматися. Стандартні claims також включають 'iss' (issuer), 'sub' (subject), 'aud' (audience), 'iat' (issued at) та 'nbf' (not before). Перевірка claim exp є критично важливою для обмеження терміну дії токенів і зменшення наслідків викрадення токена.

4

У чому полягає основна різниця між HS256 і RS256 для підпису JWT?

5

Як відкликати JWT до його природного закінчення терміну дії?

+21 питань зі співбесід

Опануй Go для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно