Skip to content

English | Русский

Правила безопасности

См. также: security-checklist.md — OWASP Top 10 чек-лист.

Основные принципы

  1. Никогда не доверяй пользовательскому вводу — валидируй всё
  2. Минимальные привилегии — давай только необходимое
  3. Эшелонированная защита — множество слоёв защиты
  4. Безопасный отказ — ошибки не должны раскрывать информацию
  5. Аудит всего — логируй события безопасности

OWASP Top 10 (кратко)

A01: Нарушение контроля доступа

  • Проверяй авторизацию на КАЖДОМ endpoint
  • Не доверяй client-side данным
  • Проверяй ownership ресурсов

A02: Криптографические сбои

  • Используй argon2/bcrypt для паролей (НЕ MD5/SHA1)
  • Secrets через переменные окружения
  • HTTPS обязателен в production

A03: Инъекции

  • Параметризованные SQL запросы
  • textContent вместо innerHTML
  • Экранируй вывод для XSS prevention

A05: Неправильная конфигурация

  • Безопасные сообщения об ошибках
  • Настроенные security headers
  • Специфичный CORS (не *)

A07: Сбои аутентификации

  • Rate limiting на auth endpoints
  • Secure cookie flags (httpOnly, secure, sameSite)
  • Сильные требования к паролям

Валидация входов

Обязательные проверки

  • Тип данных
  • Длина/размер
  • Формат (email, URL, etc)
  • Допустимые значения (whitelist)

Где валидировать

  • На границе системы (API endpoints)
  • Перед сохранением в БД
  • Перед отображением пользователю

Аутентификация

Требования к паролям

  • Минимум 12 символов
  • Смесь uppercase, lowercase, цифр, символов
  • Проверка против списков популярных паролей
httpOnly: true    — нет доступа из JS
secure: true      — только HTTPS
sameSite: strict  — защита от CSRF

Управление секретами

Категорически нельзя

  • Хардкодить секреты в коде
  • Коммитить .env файлы
  • Логировать секреты

Правильно

  • Переменные окружения
  • Secrets managers (Vault, AWS Secrets Manager)
  • Регулярная ротация credentials

.gitignore для секретов

.env
.env.*
!.env.example
secrets/
*.pem
*.key

Логирование для безопасности

Что логировать

  • Успешные/неуспешные логины
  • Изменения прав доступа
  • Доступ к sensitive данным
  • Административные действия

Что НЕ логировать

  • Пароли (даже хэшированные)
  • API ключи
  • Session токены
  • Номера карт
  • PII в открытом виде

Чеклисты

Перед каждым коммитом

  • [ ] Нет хардкодированных секретов
  • [ ] Валидация входов на всех endpoints
  • [ ] Проверки авторизации присутствуют
  • [ ] Сообщения об ошибках не раскрывают информацию
  • [ ] Нет SQL/command injection
  • [ ] Rate limiting на sensitive endpoints

Перед каждым деплоем

  • [ ] Dependencies проверены на уязвимости
  • [ ] Security headers настроены
  • [ ] HTTPS enforced
  • [ ] Секреты в безопасном хранилище
  • [ ] Логирование настроено правильно

Гарантии TAUSIK

  • bash_firewall.py блокирует rm -rf /, git reset --hard origin, force-push
  • git_push_gate.py требует TAUSIK_ALLOW_PUSH=1 (выставляется /ship после подтверждения)
  • memory_pretool_block.py блокирует Write/Edit в ~/.claude/**/memory/ (защита от утечки auto-memory)
  • brain_scrubbing.py вырезает приватные URL и имена проектов перед записью в Brain
  • Валидация slug'ов в scaffold ролей/стеков блокирует path traversal