В JWT кладут отдел, роль и почту сотрудника, считая, что токен зашифрован. Он не зашифрован
jbenderov 37 минут назад В JWT кладут отдел, роль и почту сотрудника, считая, что токен зашифрован. Он не зашифрован Средний 4 мин 891 Информационная безопасность * Веб-разработка * Проектирование API * Разработчик...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: jbenderov 37 минут назад В JWT кладут отдел, роль и почту сотрудника, считая, что токен зашифрован. Он не зашифрован Средний 4 мин 891 Информационная безопасность * Веб-разработка * Проектирование API * Разработчик приложил к тикету свой токен целиком — чтобы ошибку авторизации можно было воспроизвести. Ошибку починили, тикет закрыли, токен так и остался в задаче, которую видит вся команда и подрядчики.
Токен выглядит как шифротекст: длинная строка из букв, цифр и дефисов, глазами не читается. Отсюда и распространённое допущение — раз не читается, значит, закрыто, и внутрь можно положить что угодно полезное. На самом деле это base64.
Технические детали
Читается одной командой, ключ для этого не нужен, и содержимое видно всем, через кого проходит токен: браузеру пользователя, расширениям в нём, промежуточным прокси, системам логирования. Что лежит внутри токенаВозьмём типичный токен:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiI0NDE3IiwiZW1haWwiOiJhLnBl dHJvdkBleGFtcGxlLnJ1Iiwicm9sZSI6Im1hbmFnZXIiLCJkZXB0Ijoic2FsZXMiLCJpYXQiO jE3NTYzMDAwMDAsImV4cCI6MTc1NjMwMzYwMH0.
ip0UT1iRKo-73KGoSCfjMF-h9wx83QgJ2p _12xPbjbc Три части через точку: заголовок, полезная нагрузка, подпись. Декодируем среднюю:import base64, json payload = token. urlsafe_b64decode(payload + '=' * (-len(payload) % 4)) print(raw.
decode()) {"sub":"4417","email":"a. ru","role":"manager", "dept":"sales","iat":1756300000,"exp":1756303600} Никакого ключа не потребовалось. Внутри — идентификатор сотрудника, его почта, должность и подразделение.
Отраслевые последствия
Этот набор лежит в браузере пользователя, уходит с каждым запросом и оседает в логах всех сервисов по пути. Что подпись на самом деле гарантируетРаз содержимое открыто, возникает резонный вопрос: а что тогда даёт третья часть токена. Она даёт целостность, а не конфиденциальность.
Подпись считается по заголовку и нагрузке с секретным ключом сервера, и без ключа пересчитать её нельзя. Меняем в нагрузке manager на admin, а подпись оставляем прежнюю — новую взять неоткуда:import base64, json, jwt head, payload, sig = token. urlsafe_b64decode(payload + '=' * (-len(payload) % 4))) data = 'admin' new_payload = base64.
urlsafe_b64encode( json. dumps(data, separators=(',', ': . {sig}', key, algorithms=) Сервер такой токен не примет:jwt.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





