Безопасность, миграции и деплой CRM

CRM хранит данные людей, поэтому к безопасности здесь относятся серьёзнее. Разберём две главные угрозы, как обновлять систему без потерь и как добавить руководителю аналитику.

🎯 После урока сможешь: защитить CRM, безопасно её обновить и развернуть.

Две угрозы: инъекции и XSS

  • SQL-инъекция — злоумышленник вписывает в поле хитрый текст, который меняет запрос к базе. Защита: параметризованные запросы (данные передают отдельно от запроса), их делает Claude Code по умолчанию.
  • XSS — вредный скрипт через поле ввода. Защита: шаблонизатор (Jinja2) по умолчанию экранирует вывод, превращая опасные символы в безопасные.

Правило простое: не доверяй тому, что ввёл пользователь. Проверяй данные на входе и используй параметризованные запросы и экранирование. Попроси Claude Code «проверь код на SQL-инъекции и XSS» — это часть сдачи проекта.

Миграции: меняем базу без потерь

Со временем в CRM добавляют поля (например, «источник заявки»). Менять структуру живой базы вручную опасно. Для этого есть миграции (Alembic): каждое изменение схемы записывается шагом, который можно применить и откатить. Данные при этом не теряются.

Мини-аналитика для руководителя

Внутри админки полезно показать пару цифр: сколько заявок, воронка по статусам, кто из менеджеров эффективнее. Это делает CRM ценнее и готовит почву к Паттерну 5 (дашборды).

Блок аналитики в CRM: счётчики заявок по статусам (новые, в работе, оплачено) и рейтинг менеджеров.

Деплой

Как и бота, CRM выкладывают на сервер (Docker), чтобы работала 24/7. Секреты (ключ подписи токенов, пароль базы) — в переменных окружения, не в коде. Резервные копии базы — обязательны: это данные клиента.

Контрольный вопрос. Чем защищаются от SQL-инъекций?

АПараметризованными запросами — данные передают отдельно от текста запроса
БТем, что просят пользователей не вводить плохое
ВУскорением базы данных

Подсказка: Данные не склеивают с запросом напрямую.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Зачем нужны миграции (Alembic)?

АМенять структуру базы пошагово и безопасно, не теряя данные
БУскорять запросы
ВХранить пароли

Подсказка: Речь про изменение схемы живой базы без потерь.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Главный принцип безопасности при работе с вводом пользователя?

АНе доверять введённому — проверять и экранировать
БДоверять, пользователи хорошие
ВХранить всё в открытом виде для удобства

Подсказка: Ввод пользователя — источник и инъекций, и XSS.

Онлайн-проверка ответа появится позже

Что дальше

Ты собрал боевую CRM: данные, роли, безопасность, деплой. Осталось закрепить на практике — собрать свою мини-CRM. Это финальные задания раздела.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева