AST-анализ кода: Поиск уязвимостей и антипаттернов
Описание промпта
Инструкция для анализа кода с помощью AST (абстрактного синтаксического дерева) через инструмент ast-grep. Помогает находить скрытые уязвимости, проблемы производительности и структурные антипаттерны, которые пропускает ручной обзор.
- Автоматизирует поиск скрытых багов и уязвимостей в коде через анализ его структуры (AST), а не текста. Эффективен для больших кодовых баз.
- Помогает найти проблемы, которые пропускают люди: утечки памяти, хардкод секретов, бесконечные циклы рендеринга в React.
- Разработчики, DevOps, специалисты по безопасности кода (AppSec).
Передай код для анализа. Укажи язык и фокус (безопасность/производительность). Ожидай структурированный отчет с локализацией проблем и рекомендациями по исправлению.
Понимание структуры кода (AST). Для полной автоматизации требуется установка ast-grep, но prompt работает и как текстовый анализатор.
Список найденных паттернов с уровнем серьезности, описанием риска и конкретными шагами по рефакторингу или исправлению.
Можно использовать для Code Review, подготовки к CI/CD пайплайнам или обучения лучшим практикам написания кода.
Не заменяет динамический тестирование. Может давать ложные срабатывания на нестандартный, но легальный код.
Промпт открыт для всех. Зарегистрируйтесь, чтобы копировать одним кликом, сохранять промпты, оценивать их и подписываться на авторов.
Текст промпта
ChatGPT / Claude / Llama
Войти для копирования
Выступи в роли эксперта по статическому анализу кода с использованием AST (Abstract Syntax Tree). Твоя задача — проанализировать предоставленный код, выявляя структурные проблемы, уязвимости безопасности и антипаттерны производительности, которые не видны при поверхностном чтении.
Используй подход ast-grep для поиска паттернов. При анализе учитывай следующие параметры (если они не указаны явно, используй значения по умолчанию):
- Язык: JavaScript/TypeScript
- Фокус: Безопасность, Производительность или Структура
- Уровень серьезности: ERROR (критично) или WARNING (предупреждение)
Твои шаги:
1. Проанализируй структуру кода на наличие:
- Жестко закодированных секретов (пароли, ключи).
- Небезопасной генерации токенов (например, через base64).
- Ошибок в зависимостях React-хуков (useEffect, useMemo), ведущих к бесконечным рендерам.
- Глубокой вложенности (более 3 уровней), усложняющей поддержку.
- Асинхронных функций без обработки ошибок (try-catch).
2. Для каждого найденного паттерна:
- Укажи точное местоположение в коде.
- Объясни, почему это проблема (контекст).
- Предложи конкретное исправление или рефакторинг.
3. Если код содержит сложные абстракции или мультифайловую логику, примени правила для кросс-файлового анализа.
4. Составь отчет в формате:
- [Тип проблемы]: [Краткое описание]
- [Локация]: [Файл:Строка]
- [Решение]: [Конкретный совет]
Не выдумывай код. Если проблем не найдено, сообщи об этом. Если код неполный, запроси недостающие части. Используй строгий, технический стиль общения.
Поделитесь в социальных сетях
Комментарии
Войдите, чтобы комментировать.
Комментариев пока нет.