Инструменты разработчика · Декодер JWT
Никогда не вставляйте токен Live Access в серверный декодер JWT.
· Почему это важно
JWT безопасность конфиденциальность
Токен на предъявителя — это удостоверение личности: тот, кто владеет им, может действовать от вашего имени до истечения срока его действия. В этом посте объясняется, что вы передаете, когда вставляете его в инструмент, который взаимодействует со своим сервером, и как безопасно отлаживать его.
Быстрая вставка под давлением — в тот момент, когда рабочий сертификат покидает вашу машину
Производственный объект API отвечает 401, и самым быстрым шагом отладки является вставка его носителя JWT в веб-декодер. В этот момент вы можете передать рабочие учетные данные серверу, не имеющему отношения к вашему приложению. Панель результатов, показывающая читаемые претензии, не сообщает вам, что оператор сохранил, записал или переслал. Остановитесь и определите, активен ли токен, прежде чем рассматривать удобный декодер как нейтральный форматтер.
Носитель означает, что владение — это авторитет. Почему токен ближе к паролю, чем к идентификатору
Учетные данные на предъявителя предоставляют полномочия тому, кто ими владеет, в соответствии с правилами выдавшей их службы до тех пор, пока не истечет срок их действия или они не будут аннулированы. Его подпись может доказать подлинность проверяющему лицу, имеющему правильный ключ; это не делает токен безопасным для раскрытия. Некоторые токены предоставляют доступ только для чтения, другие разрешают запись или операции с привилегированными учетными записями. Даже если вы доверяете утверждениям, отображаемым внутри него, отправка полной компактной строки передает получателю байты подписи и все три закодированных сегмента.
Что может видеть серверный инструмент — полный токен, утверждения внутри него и, в принципе, возможность воспроизвести его, пока он действителен.
Декодер на стороне сервера может получить всю строку в своем запросе, просмотреть учетную запись и получить ее имена и, в принципе, воспроизвести ее для службы, пока она действительна. Делает ли это оператор на самом деле – это отдельный вопрос, на который нельзя ответить одной только веселой фразой «мы не храним токены». Журналы, трассировка, расширения браузера и посреднические службы могут создавать дополнительные копии. Пустой POST поверх HTTPS шифрует поездку; это не исключает доступа пункта назначения к открытому тексту после прибытия.
Что содержится в полезной нагрузке — идентификаторы пользователей, адреса электронной почты, роли и области действия, которые являются личными данными даже без повторного воспроизведения.
Полезная нагрузка JWT закодирована в формате Base64url, а не зашифрована. Он может содержать идентификатор субъекта, адрес электронной почты, роль, область действия или идентификатор клиента, даже если срок действия токена истек и он больше не может предоставлять доступ. Эти поля могут быть личными или коммерчески конфиденциальными, независимо от подписи. Метка алгоритма и заявление об истечении срока действия являются просто данными внутри токена, пока их не проверит доверенный проверяющий; Декодер ToolAcre намеренно не проверяет подпись. Не используйте его вывод в качестве решения о разрешении.
Более безопасные привычки отладки — декодирование на стороне клиента, токены с истекшим сроком действия или тестовые токены, а также отзыв или ротация после любого воздействия.
Для реального производственного материала отдайте предпочтение автономному отладчику или локальному сценарию, которым вы управляете. При демонстрации общедоступного веб-декодера используйте просроченный, ротированный или явно синтетический токен. Если рабочий токен был вставлен на ненадежную страницу, поверните или отзовите его, а не только очищайте историю браузера. Декодирование на стороне клиента является улучшением по сравнению с загрузкой значения, но оно не является автоматически безопасным: сценарии страниц и расширения могут считывать входные данные DOM, а рабочие страницы разработчика ToolAcre загружают сторонние подключения к сайту AdSense, GA4 и сценарии Диспетчера тегов, даже если показ рекламы отключен и события аналитики ToolAcre требуют согласия. Не вставляйте токен живого доступа ни на один веб-сайт, включая ToolAcre.
Рабочий пример — сеанс отладки, который проверяет токен, не выходя из браузера, проверенный на сетевой панели.
Создайте безвредный тест JWT в среде разработки, сделайте его недействительным и проверьте эту копию, открыв панель «Сеть» браузера. ToolAcre разбивает и декодирует его в коде страницы без запроса на загрузку ToolAcre, несущего его байты; вы можете проверить эти запросы во время сеанса. Вы по-прежнему можете видеть ресурсы веб-сайта и раскрытый трафик сторонних сценариев, поэтому пустая панель «Сеть» не является претензией. Сравните отображаемый заголовок и полезную нагрузку с доверенными тестовыми данными и обратите внимание на явное предупреждение «подпись не проверена», прежде чем интерпретировать какое-либо утверждение.
Чего это не касается — утечка токенов через журналы и URL-адреса, которые представляют собой отдельные пути утечки.
В этой статье не рассматривается проблема утечки токена в журналы приложений, строку запроса URL, общий доступ к экрану или расширение браузера. Локальное декодирование также не мешает вредоносному скрипту, уже имеющему доступ к вашей странице, читать ее текстовые поля. Используйте короткие сроки жизни, области с наименьшими привилегиями и безопасные средства управления журналированием в службе-эмитенте; декодер не может модифицировать эти свойства в учетные данные, которые были созданы небезопасно.
Вывод: проверяйте локально или не проверяйте вообще — декодер ToolAcre JWT запускается в браузере, ничего не сохраняет и никогда не проверяет, поэтому ему не нужен и не отправляется ваш токен.
Проверяйте локально или с помощью одноразовых данных. ToolAcre JWT декодер считывает и анализирует вставленный токен в вашем браузере и не проверяет его, поэтому он может помочь диагностировать формат, не предоставляя ему полномочий. Поскольку это по-прежнему веб-страница с другим исполняемым кодом, выберите автономный инструмент для действующих учетных данных; Самый безопасный производственный токен для вставки в онлайн-декодер — его отсутствие.