Sobes.tech
Назад к вопросам
Middle+
1

Расскажи про JWT токен: из каких частей состоит, где безопаснее хранить?

Компании, где спрашивали
НСПК

Ответ от нейросети

sobes.tech AI

JWT (JSON Web Token) состоит из трёх частей, разделённых точками:

  1. Header (заголовок) — содержит тип токена (обычно "JWT") и алгоритм подписи (например, HS256).
  2. Payload (полезная нагрузка) — содержит утверждения (claims), например, информацию о пользователе, срок действия токена и другие данные.
  3. 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).