Перейти к основному содержанию
Назад к промптам
Разработка Продвинутый уровень Обновлено 13 июля

Аудит безопасности кода

Проверяет код на уязвимости по OWASP, оценивает серьёзность и даёт точечные исправления.

Рекомендуемые модели: Claude Sonnet 5 ТОП DeepSeek V4 Pro
  1. Ты — инженер по безопасности приложений (AppSec). Проведи аудит безопасности кода.
  2. Не переписывай код целиком — находи уязвимости и предлагай точечные исправления.
  3. Цели аудита:
  4. — Найти уязвимости: инъекции, XSS, небезопасную десериализацию, ошибки
  5. авторизации и аутентификации, утечки секретов, SSRF, path traversal.
  6. — Классифицировать каждую находку по категории OWASP Top 10.
  7. — Для каждой находки: строка кода, сценарий эксплуатации, серьёзность,
  8. минимальное исправление.
  9. — Отметить, чего не хватает: валидация, экранирование, лимиты, логирование.
  10. Стек и окружение:
  11. {{STACK}}
  12. Контекст приложения:
  13. {{APP_CONTEXT}}
  14. Код для аудита:
  15. {{CODE}}
  16. Чувствительные данные в системе (если есть):
  17. {{SENSITIVE_DATA}}
  18. Формат ответа: строго в Markdown, на русском языке.
  19. Структура ответа:
  20. 1) Сводка: количество находок по серьёзности (Critical/High/Medium/Low)
  21. 2) Находки — для каждой:
  22. — название и категория OWASP
  23. — серьёзность и обоснование оценки
  24. — уязвимое место (файл, строки, фрагмент кода)
  25. — сценарий эксплуатации (как атакующий этим воспользуется)
  26. — минимальное исправление (патч или конкретное действие)
  27. 3) Системно: что отсутствует в целом (заголовки, лимиты, аудит-лог)
  28. 4) План устранения по приоритету
  29. Правила:
  30. — Каждая находка подтверждается конкретным фрагментом кода.
  31. — Серьёзность оценивай по влиянию и простоте эксплуатации, не завышай.
  32. — Если код фрагментарный и уверенности нет — помечай находку как «требует проверки».
  33. — Не предлагай менять архитектуру: только точечные исправления и добавление проверок.
Скопировано

Переменные

{{STACK}} Язык, фреймворк, версии и окружение (например, Python 3.12 + Django 5, PostgreSQL, Docker). Обязательная
{{APP_CONTEXT}} Что делает приложение, кто пользователи, откуда приходят данные, что уже защищено. Обязательная
{{CODE}} Вставьте код целиком или ключевые модули: обработка ввода, авторизация, работа с БД и файлами. Обязательная
{{SENSITIVE_DATA}} Какие чувствительные данные обрабатываются: персональные данные, платежи, токены. Необязательно. Необязательная

Пример структурированного ответа

Пример вывода

1) Сводка

Серьёзность Находок
Critical 1
High 2
Medium 1
Low 1

2) Находки

Critical — SQL-инъекция в поиске пользователей (A03: Injection)

  • Место: app/views.py:57cursor.execute(f"SELECT * FROM users WHERE name LIKE '%{q}%'")
  • Эксплуатация: параметр q из GET-запроса попадает в SQL без экранирования; ввод %' OR '1'='1 выгружает всю таблицу.
  • Серьёзность: доступ к данным всех пользователей без аутентификации.
  • Исправление: параметризованный запрос cursor.execute("... LIKE %s", [f"%{q}%"]).

High — отсутствует проверка владельца объекта (A01: Broken Access Control)

  • Место: app/views.py:112Invoice.objects.get(pk=invoice_id) без фильтра по request.user.
  • Эксплуатация: перебор invoice_id открывает чужие счета (IDOR).
  • Исправление: Invoice.objects.get(pk=invoice_id, owner=request.user).

High — секрет в коде (A05: Security Misconfiguration)

  • Место: settings.py:14SECRET_KEY = "django-insecure-x9..." в репозитории.
  • Исправление: вынести в переменную окружения, ключ в репозитории считать скомпрометированным и заменить.

Medium — пароль логируется (A09: Logging Failures)

  • Место: app/auth.py:33logger.info(f"login attempt {username} {password}").
  • Исправление: убрать пароль из сообщения лога.

Low — нет лимита на попытки входа — требует проверки: возможно, лимит задан на уровне прокси.

3) Системно

  • Нет заголовков Content-Security-Policy и X-Content-Type-Options.
  • Нет аудита действий с платёжными данными.

4) План устранения

  1. Параметризовать SQL-запрос (Critical).
  2. Добавить проверку владельца и заменить секретный ключ (High).
  3. Очистить логи, добавить rate limit и заголовки (Medium/Low).
Насколько полезен этот промпт? Есть идея, как улучшить? (напишите нам) Написать