Главная / 🔒 Безопасность

🔒 Безопасность

Многоуровневая защита при работе с Claude Code: OWASP TOP-10, защита секретов, безопасность БД, Git safety, Docker изоляция.

🛡️ Уровни защиты

УровеньИнструментЧто защищает
1. Permissions denysettings.jsongit --force, DROP TABLE, pg_dump
2. Hooks PreToolUsedangerous-command-guardmigrate:fresh, db:wipe, rm -rf
3. Hooks PreToolUsebash-mcp-guardпрямые docker команды
4. Hooks PreToolUsecritical-files-guardCaddyfile, .env.prod, migrations
5. Hooks PreToolUsesecret-scannerAPI ключи, Bearer токены в командах
6. PG рольclaude_readonlyINSERT/UPDATE/DELETE в БД
7. MCP mode--access-mode=restrictedDDL через MCP PostgreSQL

⚠️ OWASP TOP-10 — что блокировать в коде

SQL Injection
// ОПАСНО — конкатенация: DB::select("SELECT * FROM users WHERE id = " . $id); // БЕЗОПАСНО — параметры: DB::select("SELECT * FROM users WHERE id = ?", [$id]);
Mass Assignment
// ОПАСНО — все поля: User::create($request->all()); // БЕЗОПАСНО — только валидированные: User::create($request->validated());
XSS (Vue)
// ОПАСНО — v-html с ненадёжными данными: <div v-html="userContent" /> // БЕЗОПАСНО — текстовая интерполяция: <div>{{ userContent }}</div>
Secrets в коде
// ОПАСНО — захардкоженный ключ: $key = "sk-ant-api03-XXXXX"; // БЕЗОПАСНО — из переменной: $key = config('services.anthropic.key'); // или: os.getenv("ANTHROPIC_API_KEY")

🔑 Защита секретов

# .gitignore — обязательные строки: .env .env.production .env.local .mcp.json # Содержит DATABASE_URI с паролем! *.pem *.key .secrets/ # secret-scanner.cjs перехватывает команды с: # - sk-* (OpenAI) # - sk-ant-* (Anthropic) # - AKIA* (AWS) # - Bearer tokens # - git add .env (HARD BLOCK)
🚫
Файл .mcp.json содержит DATABASE_URI с паролем! Он должен быть в .gitignore. Никогда не коммитить. Используй переменные окружения или отдельный .mcp.local.json который тоже в .gitignore.

🐳 Docker Security

# docker-compose.yml — правила безопасности: services: backend: user: "1000:1000" # Не root! read_only: true # Файловая система только для чтения cap_drop: - ALL # Убрать все привилегии security_opt: - no-new-privileges:true db: # НЕТ секции ports для БД! # Только внутренняя сеть: networks: - internal

🔐 Git Security

# Заблокировано permissions + hooks: git push --force # Перезапишет историю! git reset --hard # Уничтожит uncommitted работу! git commit --no-verify # Обходит pre-commit хуки! # Безопасные альтернативы: git push --force-with-lease # Только если нет новых коммитов git restore . # Вместо reset --hard (только файлы) git revert HEAD # Откат через новый коммит
Принцип наименьших привилегий: Claude Code получает только те права, которые нужны для текущей задачи. БД — read-only. Git — без force push. Docker — через MCP без shell. Файлы prod — защищены guards.