BF JWT Auth Audit
Аудитор безопасности JWT и OAuth/OIDC. Декодирует любой JWT-токен (без проверки) для проверки полей alg/exp/iss/aud/scope, обнаруживает уязвимость обхода "alg:none", просроченные или не имеющие срока действия токены, слишком широкие области OAuth, JWT, хранящиеся в localStorage (риск кражи через XSS), JWT в параметрах URL (утечка логов), отсутствие проверки issuer/audience в исходном коде, жестко закодированные токены в файлах .env и слабые секреты HMAC. Также сканирует исходные файлы на наличие небезопасных шаблонов обработки токенов: вывод в лог токена Bearer, сравнение токена с помощью ==, обход аутентификации через роль:admin в полезной нагрузке. Генерирует отчет с ранжированием по степени серьезности, точными расположениями в коде и исправлениями. Нулевое количество внешних API — чистый локальный анализ. Активируется по запросам "JWT audit", "token security", "auth security", "alg none", "OAuth scopes", "bearer token", "token expiry", "/jwt-audit".
машинный переводПоказать оригиналСкрыть оригинал«JWT and OAuth/OIDC security auditor. Decodes any JWT token (without ve…»
JWT and OAuth/OIDC security auditor. Decodes any JWT token (without verification) to inspect alg/exp/iss/aud/scope claims, detects the "alg:none" bypass vulnerability, expired or no-expiry tokens, overly broad OAuth scopes, JWT stored in localStorage (XSS theft risk), JWT in URL parameters (log leakage), missing issuer/audience validation in source code, hardcoded tokens in .env files, and weak HMAC secrets. Also scans source files for insecure token handling patterns: Bearer token logged, token compared with ==, auth bypass via role:admin in payload. Generates a severity-ranked report with exact code locations and fixes. Zero external API — pure local analysis. Triggers on "JWT audit", "token security", "auth security", "alg none", "OAuth scopes", "bearer token", "token expiry", "/jwt-audit".
Аудитор безопасности JWT и OAuth/OIDC.
Как процесс F 37/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: ?:token|auth|jwt|access_token|bearer, token|access_token|jwt|auth_token|bearer, ?!process\.|os\.|getenv
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
frontmatter-yamlSKILL.md: фронтматтер не разбирается как YAML (YAML parse error: Nested mappings are not allowed in compact mappings at line 2, column 14: description: JWT and OAuth/OIDC security auditor. Decodes any JWT token (withou… ^ ); поля прочитаны построчно. Обычная причина — двоеточие в незакавыченном значении - предупреждение
name-formatname должен быть в kebab-case (строчные буквы, цифры, дефисы) - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
body-longтело SKILL.md ≈ 5639 токенов (рекомендуется < 5000); вынесите детали в references/ - предупреждение
missing-refссылка на отсутствующий файл: ?:token|auth|jwt|access_token|bearer - предупреждение
missing-refссылка на отсутствующий файл: token|access_token|jwt|auth_token|bearer - предупреждение
missing-refссылка на отсутствующий файл: ?!process\.|os\.|getenv - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 37/100
- 0Инструменты и файлы. Не хватает 3 файла(ов): ?:token|auth|jwt|access_token|bearer, token|access_token|jwt|auth_token|bearer, ?!process\.|os\.|getenv
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 40Согласованность. Имя во frontmatter (JWT Auth Audit) не совпадает с папкой (phy-jwt-auth-audit)
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Стоимость исполнения. Тело инструкции 5639 токенов
- 100Шаги. Шагов: 9
- 100Повторный запуск. Изменяющих операций нет
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 804: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +5В description 9 примера фраз-триггеров в кавычках
- +4Структура: 10 заголовков
- +3Пошаговые инструкции: 9 пунктов
- +4Есть примеры (17 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 37.