SKILLEMALL.ai

BF phy-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".

LeoYeAI/openclaw-master-skills Agent Skills автор: LeoYeAI MIT 2 файла тело ≈ 5 582 токенов Открыть источникgithub.com проанализирован 2 дн назад

Аудитор безопасности JWT и OAuth/OIDC.

Как процесс F 42/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: ?:token|auth|jwt|access_token|bearer, token|access_token|jwt|auth_token|bearer, ?!process\.|os\.|getenv

ИнтеграцияРазработкатип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
B
77/100
безопасность, качество, тесты
Безопасность 60%
100
Качество 40%
43
Прогон на моделях
не было
Процессный рейтинг
F
42/100
Не запустится
Скилл ссылается на файлы, которых нет в архиве: ?:token|auth|jwt|access_token|bearer, token|access_token|jwt|auth_token|bearer, ?!process\.|os\.|getenv
Инструменты и файлы вес 18
0
Результат и критерий готовности вес 14
0
Входы и предусловия вес 11
0
три самых слабых из десяти параметров · все десять

Как улучшить

  1. Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
  2. Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
  3. В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
Для прогона на моделях — необязательно
  • Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 0

✓ Критических и высоких находок нет

Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

  • предупреждение frontmatter-yaml SKILL.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… ^ ); поля прочитаны построчно. Обычная причина — двоеточие в незакавыченном значении
  • предупреждение description-no-when description не говорит, КОГДА применять скилл (нет "use when / используй когда")
  • предупреждение body-long тело SKILL.md ≈ 5582 токенов (рекомендуется < 5000); вынесите детали в references/
  • предупреждение missing-ref ссылка на отсутствующий файл: ?:token|auth|jwt|access_token|bearer
  • предупреждение missing-ref ссылка на отсутствующий файл: token|access_token|jwt|auth_token|bearer
  • предупреждение missing-ref ссылка на отсутствующий файл: ?!process\.|os\.|getenv

Процессный рейтинг: все десять параметров 42/100

Не запустится. Скилл ссылается на файлы, которых нет в архиве: ?:token|auth|jwt|access_token|bearer, token|access_token|jwt|auth_token|bearer, ?!process\.|os\.|getenv
  • 0Инструменты и файлы. Не хватает 3 файла(ов): ?:token|auth|jwt|access_token|bearer, token|access_token|jwt|auth_token|bearer, ?!process\.|os\.|getenv
  • 0Результат и критерий готовности. Не сказано, что считать результатом
  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 0Ошибки и развилки. Линейный процесс без обработки сбоев
  • 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
  • 70Стоимость исполнения. Тело инструкции 5582 токенов
  • 100Шаги. Шагов: 7
  • 100Согласованность. Имя и обязательные поля на месте
  • 100Повторный запуск. Изменяющих операций нет
  • 100Отчётность по ходу. Скилл сообщает о ходе работы

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Длина description 804: рекомендуется 120–800 символов
  • +3Формат ответа не описан: модель каждый раз решает сама
  • +2Инструкции на одном языке
  • +5В description 9 примера фраз-триггеров в кавычках
  • +4Структура: 9 заголовков
  • +3Пошаговые инструкции: 7 пунктов
  • +4Есть примеры (17 блоков кода)
  • +1Лицензия указана

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 43.