Code Review, безопасность и верификация
Code Review, безопасность и верификация
Claude Code — мощный инструмент для code review. Правильно поставленная задача даёт глубокий анализ, который дополняет автоматические линтеры.
Code Review с Claude Code
# Ревью текущих изменений
claude "Сделай code review git diff. Фокус на: безопасность,
производительность, потенциальные баги"
# Ревью конкретного файла
claude "Проверь src/auth/jwt.ts на безопасность и best practices"
# Ревью перед PR
claude "Мы готовимся смерджить эту ветку. Проверь все изменения
относительно main и укажи на что обратить внимание"
Типичные уязвимости, которые найдёт Claude
SQL Injection:
// ❌ Уязвимо
const result = await db.query(`SELECT * FROM users WHERE id = ${userId}`)
// ✅ Безопасно
const result = await db.query('SELECT * FROM users WHERE id = $1', [userId])
XSS:
// ❌ Уязвимо
<div dangerouslySetInnerHTML={{ __html: userContent }} />
// ✅ Безопасно — React экранирует автоматически
<div>{userContent}</div>
Открытые секреты:
// ❌ Никогда
const apiKey = "sk-live-abc123"
// ✅ Через переменные окружения
const apiKey = process.env.API_KEY
Skill для систематического ревью
---
name: security-review
description: Полный security review изменений
---
Проведи security review git diff HEAD:
**КРИТИЧНО (блокирует merge):**
- SQL/NoSQL injection
- XSS возможности
- Открытые секреты/ключи в коде
- Сломанная аутентификация/авторизация
**ВАЖНО (нужно исправить):**
- Небезопасная десериализация
- Отсутствие валидации пользовательского ввода
- Небезопасные прямые ссылки на объекты
**РЕКОМЕНДАЦИИ:**
- Логирование критических операций
- Rate limiting для публичных эндпоинтов
Для каждой проблемы: файл:строка, описание, пример исправления.
Верификация решений Claude Code
Claude Code может ошибаться. Паттерны для верификации:
> Ты только что написал функцию processPayment. Проверь её сам:
1. Обработаны ли все edge cases?
2. Что произойдёт если payment gateway недоступен?
3. Корректно ли обрабатываются транзакции БД?
Итог
- Claude Code находит SQL injection, XSS, открытые секреты
- Создайте skill /security-review для систематической проверки
- Просите Claude Code самому верифицировать своё решение
- Автоматические линтеры + Claude = дополняющие слои защиты
Практические задания
#1
Проведи security review через Claude Code
Возьми любой реальный модуль (или учебный пример с намеренными уязвимостями).
Попроси Claude Code провести security review: найти потенциальные уязвимости, объяснить каждую и предложить исправление. Оцени полноту анализа.
Подсказки
#2
Настрой автоматический code review
Создай skill или hook, который запускает review каждого изменённого файла перед коммитом.
Review должен проверять: стиль кода, потенциальные баги, нарушение конвенций проекта.
Подсказки