CRM хранит данные людей, поэтому к безопасности здесь относятся серьёзнее. Разберём две главные угрозы, как обновлять систему без потерь и как добавить руководителю аналитику.
🎯 После урока сможешь: защитить CRM, безопасно её обновить и развернуть.
Две угрозы: инъекции и XSS
- SQL-инъекция — злоумышленник вписывает в поле хитрый текст, который меняет запрос к базе. Защита: параметризованные запросы (данные передают отдельно от запроса), их делает Claude Code по умолчанию.
- XSS — вредный скрипт через поле ввода. Защита: шаблонизатор (Jinja2) по умолчанию экранирует вывод, превращая опасные символы в безопасные.
Правило простое: не доверяй тому, что ввёл пользователь. Проверяй данные на входе и используй параметризованные запросы и экранирование. Попроси Claude Code «проверь код на SQL-инъекции и XSS» — это часть сдачи проекта.
Миграции: меняем базу без потерь
Со временем в CRM добавляют поля (например, «источник заявки»). Менять структуру живой базы вручную опасно. Для этого есть миграции (Alembic): каждое изменение схемы записывается шагом, который можно применить и откатить. Данные при этом не теряются.
Мини-аналитика для руководителя
Внутри админки полезно показать пару цифр: сколько заявок, воронка по статусам, кто из менеджеров эффективнее. Это делает CRM ценнее и готовит почву к Паттерну 5 (дашборды).

Деплой
Как и бота, CRM выкладывают на сервер (Docker), чтобы работала 24/7. Секреты (ключ подписи токенов, пароль базы) — в переменных окружения, не в коде. Резервные копии базы — обязательны: это данные клиента.
Контрольный вопрос. Чем защищаются от SQL-инъекций?
Подсказка: Данные не склеивают с запросом напрямую.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Зачем нужны миграции (Alembic)?
Подсказка: Речь про изменение схемы живой базы без потерь.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Главный принцип безопасности при работе с вводом пользователя?
Подсказка: Ввод пользователя — источник и инъекций, и XSS.
Онлайн-проверка ответа появится позже
Что дальше
Ты собрал боевую CRM: данные, роли, безопасность, деплой. Осталось закрепить на практике — собрать свою мини-CRM. Это финальные задания раздела.
