BF Regex Audit
Сканер уязвимостей статического ReDoS (Regular Expression Denial of Service) и аудитор качества регулярных выражений для кодовых баз. Проходит по всем исходным файлам для извлечения литералов регулярных выражений, обнаруживает шаблоны катастрофического возврата (вложенные квантификаторы, перекрывающиеся альтернативы, неограниченные повторения в сложных группах), ранжирует каждое обнаружение по критичности CRITICAL/HIGH/MEDIUM, сообщает файл и номер строки с выделенным опасным подшаблоном, идентифицирует сайты с высоким риском вызова (обработчики HTTP-запросов, валидаторы форм, парсеры URL) и предлагает безопасные переписывания с использованием атомарных групп или упрощенных альтернатив. Также обнаруживает жестко закодированные предположения о локали (классы символов, предполагающие ASCII), чрезмерно разрешительные шаблоны и регулярные выражения без якорей. Поддерживает JS/TS, Python, Go, Java, Ruby, PHP, Rust. Нулевой внешний API — чистый статический анализ. Запускается по запросам "regex security", "ReDoS", "catastrophic backtracking", "regex audit", "slow regex", "regex vulnerability", "/regex-audit".
машинный переводПоказать оригиналСкрыть оригинал«Static ReDoS (Regular Expression Denial of Service) vulnerability scan…»
Static ReDoS (Regular Expression Denial of Service) vulnerability scanner and regex quality auditor for codebases. Walks all source files to extract regex literals, detects catastrophic backtracking patterns (nested quantifiers, overlapping alternation, unbounded repetition on complex groups), severity-ranks each finding as CRITICAL/HIGH/MEDIUM, reports file and line number with the dangerous sub-pattern highlighted, identifies high-risk call sites (HTTP request handlers, form validators, URL parsers), and suggests safe rewrites using atomic groups or simplified alternatives. Also detects hardcoded locale assumptions (character classes assuming ASCII), overly permissive patterns, and regexes missing anchors. Supports JS/TS, Python, Go, Java, Ruby, PHP, Rust. Zero external API — pure static analysis. Triggers on "regex security", "ReDoS", "catastrophic backtracking", "regex audit", "slow regex", "regex vulnerability", "/regex-audit".
Сканер уязвимостей статического ReDoS (Regular Expression Denial of Service) и аудитор качества регулярных выражений для кодовых баз.
Как процесс F 32/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: [^"\']{3,}, [^"\'\/\n]{3,}, [^"`]{3,}
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
name-formatname должен быть в kebab-case (строчные буквы, цифры, дефисы) - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
missing-refссылка на отсутствующий файл: [^"\']{3,} - предупреждение
missing-refссылка на отсутствующий файл: [^"\'\/\n]{3,} - предупреждение
missing-refссылка на отсутствующий файл: [^"`]{3,} - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 32/100
- 0Инструменты и файлы. Не хватает 3 файла(ов): [^"\']{3,}, [^"\'\/\n]{3,}, [^"`]{3,}
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 1, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (Regex Audit) не совпадает с папкой (phy-regex-audit)
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Стоимость исполнения. Тело инструкции 4834 токенов
- 100Шаги. Шагов: 8
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 946: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +5В description 6 примера фраз-триггеров в кавычках
- +4Структура: 11 заголовков
- +3Пошаговые инструкции: 8 пунктов
- +4Есть примеры (17 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 57.