Сценарий 08: Проверка соответствия требованиям

Сценарий 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»
  • «Проверить покрытие документацией»
  • «Сгенерировать отчёт о соответствии для [стандарта]»

Связанные сценарии