Сценарий 08: Проверка соответствия требованиям¶
Специалист по соответствию требованиям проверяет стандарты кодирования и нормативные требования.
Быстрый старт¶
# Выбор сценария соответствия
/select 08
Соответствие стандартам кодирования¶
Нарушения стиля¶
> Проверка на наличие нарушений стандартов кодирования
╭─────────────── Соответствие стилю ───────────────────────────╮
│ │
│ Найдено нарушений: 47 │
│ │
│ По категориям: │
│ Соглашения об именовании: 18 │
│ Отступы: 12 │
│ Стиль комментариев: 9 │
│ Длина функций: 8 │
│ │
│ Примеры нарушений: │
│ │
│ 🟡 src/backend/utils/cache.c:234 │
│ Переменная 'TempVar' должна использовать snake_case │
│ │
│ 🟡 src/backend/executor/nodeHash.c:567 │
│ Функция превышает лимит в 200 строк (234 строки) │
│ │
╰───────────────────────────────────────────────────────────────╯
Совместимость API¶
> Проверка использования устаревших API
╭─────────────── Соответствие API ─────────────────────────────╮
│ │
│ Использование устаревших API: │
│ │
│ 🔴 strcpy() - Используйте strlcpy вместо этого │
│ Вхождений: 23 │
│ Файлы: utils/string.c, libpq/pqformat.c │
│ │
│ 🔴 sprintf() - Используйте snprintf вместо этого │
│ Вхождений: 45 │
│ Файлы: различные │
│ │
│ 🟡 gets() - Используйте fgets вместо этого │
│ Вхождений: 2 │
│ Файлы: contrib/pg_test.c │
│ │
│ Рекомендация: используйте безопасные функции для строк │
│ │
╰───────────────────────────────────────────────────────────────╯
Соответствие требованиям безопасности¶
OWASP Top 10¶
> Проверка на наличие нарушений OWASP Top 10
╭─────────────── Соответствие OWASP ───────────────────────────╮
│ │
│ Анализ по OWASP Top 10: │
│ │
│ A1 - Инъекции: 3 потенциальные проблемы│
│ A2 - Несоответствующая аутентификация: 0 проблем │
│ A3 - Раскрытие конфиденциальных данных: 2 потенциальные проблемы │
│ A4 - XXE: 0 проблем │
│ A5 - Нарушение контроля доступа: 1 потенциальная проблема│
│ A6 - Ошибки конфигурации безопасности: N/A (во время выполнения) │
│ A7 - XSS: 0 проблем │
│ A8 - Небезопасная десериализация: 0 проблем │
│ A9 - Использование известных уязвимостей: проверьте зависимости │
│ A10 - Недостаточное логирование: 4 области с недостатками│
│ │
│ Всего: 10 потенциальных нарушений соответствия │
│ │
╰───────────────────────────────────────────────────────────────╯
Сопоставление с CWE¶
> Сопоставление результатов с идентификаторами CWE
╭─────────────── Сопоставление с CWE ──────────────────────────╮
│ │
│ Результаты по Common Weakness Enumeration (CWE): │
│ │
│ CWE-89 (SQL-инъекции): 3 вхождения │
│ src/pl/plpgsql/src/pl_exec.c:4567 │
│ src/backend/commands/copy.c:234 │
│ src/backend/replication/slot.c:789 │
│ │
│ CWE-120 (Переполнение буфера): 5 вхождений │
│ Различные места обработки строк │
│ │
│ CWE-476 (Разыменование NULL-указателя): 12 вхождений │
│ Отсутствие проверок на NULL после выделения памяти │
│ │
│ Полный отчёт доступен в формате SARIF │
│ │
╰───────────────────────────────────────────────────────────────╯
Соответствие документированию¶
Покрытие комментариями¶
> Проверка покрытия документацией
╭─────────────── Соответствие документированию ────────────────╮
│ │
│ Анализ покрытия комментариями: │
│ │
│ Общее покрытие: 67% │
│ │
│ По модулям: │
│ executor/: 78% ✅ │
│ parser/: 72% ✅ │
│ optimizer/: 65% 🟡 │
│ storage/: 54% 🔴 │
│ utils/: 48% 🔴 │
│ │
│ Отсутствующая документация: │
│ - 23 публичные функции без комментариев │
│ - 8 сложных функций без пояснения алгоритма │
│ │
╰───────────────────────────────────────────────────────────────╯
Отчёты о соответствии¶
Генерация полного отчёта¶
# Генерация отчёта о соответствии
python -m src.cli.compliance_report full \
--path /путь/к/проекту \
--standards owasp,cwe,style \
--output-dir ./compliance_reports \
--format sarif
Форматы вывода:
- sarif — для интеграции с IDE/CI
- json — для чтения машиной
- md — человекочитаемый формат Markdown
- html — веб-отчёт
Примеры запросов¶
- «Проверить нарушения стандартов кодирования»
- «Найти использование устаревших API»
- «Сопоставить результаты с идентификаторами CWE»
- «Проверить соответствие OWASP Top 10»
- «Проверить покрытие документацией»
- «Сгенерировать отчёт о соответствии для [стандарта]»
Связанные сценарии¶
- Аудит безопасности — Глубокий анализ безопасности
- Рецензирование кода — Проверка соответствия
- Технический долг — Оценка технического долга