Назад к вопросам
Middle+
1
Расскажи про JWT токен: из каких частей состоит, где безопаснее хранить?
Компании, где спрашивали
НСПК
Ответ от нейросети
sobes.tech AI
JWT (JSON Web Token) состоит из трёх частей, разделённых точками:
- Header (заголовок) — содержит тип токена (обычно "JWT") и алгоритм подписи (например, HS256).
- Payload (полезная нагрузка) — содержит утверждения (claims), например, информацию о пользователе, срок действия токена и другие данные.
- Signature (подпись) — создаётся путём хэширования закодированных header и payload с использованием секретного ключа или приватного ключа (в случае асимметричной криптографии).
Пример JWT:
xxxxx.yyyyy.zzzzz
где xxxxx — base64url(header), yyyyy — base64url(payload), zzzzz — подпись.
Где безопаснее хранить JWT:
- HttpOnly cookie — самый безопасный способ, так как такие куки недоступны через JavaScript, что снижает риск XSS-атак.
- LocalStorage или SessionStorage — удобны, но уязвимы к XSS, так как скрипты могут получить доступ к токену.
Рекомендуется хранить JWT в HttpOnly cookie с флагами Secure и SameSite, чтобы защитить от XSS и CSRF атак. При этом сервер должен корректно обрабатывать куки и обеспечивать безопасность передачи (HTTPS).