English | Русский
Правила безопасности
См. также: security-checklist.md — OWASP Top 10 чек-лист.
Основные принципы
- Никогда не доверяй пользовательскому вводу — валидируй всё
- Минимальные привилегии — давай только необходимое
- Эшелонированная защита — множество слоёв защиты
- Безопасный отказ — ошибки не должны раскрывать информацию
- Аудит всего — логируй события безопасности
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, цифр, символов
- Проверка против списков популярных паролей
Cookie безопасность
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-pushgit_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