Блог ·
Усиление входа и паролей ЛК
14 августа 2026: общий lockout по Redis, ссылка задать пароль в письме, пароль ЛК не хранится открытым текстом, TRUSTED_HOSTS обязателен в production.
14 августа 2026: hardening Nika Service CRM — общий lockout по Redis, ссылка «задать пароль» в письме, пароль ЛК больше не хранится открытым текстом.
Вход сотрудников и клиентов
- После нескольких неудачных попыток вход блокируется. Счётчик общий для всех процессов gunicorn, если задан
REDIS_URL(на Docker — сервис Redis). - Сессия при успешном входе staff сбрасывается, чтобы не утащить чужие ключи из cookie.
- Remember-me: HttpOnly, SameSite=Lax, срок 14 дней, Secure при HTTPS.
Личный кабинет клиента по-прежнему отдельный от CRM сотрудников: cookie ЛК не открывает /all_orders и зарплату.
Пароль кабинета
Пароль клиента в базе — только хеш. В журнал действий и логи приложения открытый пароль не пишется.
- При создании клиента сотрудник видит пароль один раз в ответе.
- Дальше только сброс: задать новый в карточке клиента.
- В письме «Заказ принят» — ссылка
##PORTAL_SETUP_URL##(действует 2 дня) на/portal/set-password, а не постоянный пароль в тексте. НуженPORTAL_PUBLIC_URL.
Подробный сценарий кабинета: вход в портал.
Хост и загрузки
- В production список
TRUSTED_HOSTSобязателен (пустой — приложение не стартует). - Файлы комментариев и чата отдаются только из каталога uploads.
- SVG в загрузках счетов больше не принимается.
Самохостинг: проверьте .env — TRUSTED_HOSTS, REDIS_URL, PORTAL_PUBLIC_URL. Демо: service.nika-crm.ru (откроется в новой вкладке).