Закрыли часть проблем с безопасностью + мелкие починки
This commit is contained in:
+49
-2
@@ -22,10 +22,17 @@
|
||||
22. Ограничить кол-во символов в сообщении на фронте. Показывать в моменте счетчик: n/max, где n сколько символов уже напечатано, max сколько может быть отправлено. Максимальное кол-во символов - положить в app_settings.
|
||||
7. Убрать с экрана ввода номера телефона тексты согласий внизу экрана: Нажимая «Получить код», вы соглашаетесь с условиями использования и политикой конфиденциальности. Согласия пользователь дает ранее на отдельном экране.
|
||||
|
||||
|
||||
|
||||
# В разработку:
|
||||
|
||||
3. Унифицировать сообщения гостевого режима о необходмости
|
||||
На экране профиля в гостевом режиме добавить кнопку "Авторизоваться"
|
||||
|
||||
|
||||
2. После интеграции с смс провайдером, реализовать debounce механизм при авторизации - каждая след. смс можно отправить через все большее окно.
|
||||
3. аудит безопасности вм
|
||||
3. На экране профиля в гостевом режиме добавить кнопку "Авторизоваться"
|
||||
|
||||
5. Store-review вход: точечный bypass в Keycloak OTP SPI по номеру из `.env` (`STORE_REVIEW_ENABLED` / `STORE_REVIEW_PHONE` / `STORE_REVIEW_OTP`) — для этого телефона SMS не шлётся, verify принимает фиксированный OTP; остальные номера идут обычным OTP/SMS. Не путать с глобальным `KEYCLOAK_OTP_MOCK_*`. Учётные данные только в Review Notes стора (не в бинарнике/UI); пользователь с демо-контентом; в production включать только на время ревью.
|
||||
6. Хранить историю устройств, с которых пользователь входил в ЛК (Ид юзера, идентификатор устройства, дата последнего входа, способ входа - веб\приложение)
|
||||
9. Веб-пуши для PWA
|
||||
@@ -40,6 +47,8 @@
|
||||
18. Разработка notification-service
|
||||
20. Поднять второй контур для продакшн
|
||||
21. Спрятать сеть за балансировщиком нагрузки
|
||||
22. Автопродление TLS падает при перезагрузке nginx; сертификат действует до 14.10.2026. (Исправить reload внутри контейнера и проверить systemctl start an-chat-ssl-renew.service до успешного завершения.)
|
||||
23. WireGuard-only SSH.
|
||||
|
||||
24. Добавить логи (Для Python-сервисов добавить OTLP Log Exporter: api-backend; sms-service; sms-worker. Подключить LoggerProvider, BatchLogRecordProcessor и bounded queue. Передавать resource attributes: service.name; service.version; deployment.environment; service.namespace=han-chat.) Экспортировать структурированные поля request_id, trace_id, span_id, severity и event name. Оставить stdout как аварийный локальный журнал. Добавить canary-тесты, запрещающие экспорт токенов, cookie, телефонов, email, текстов сообщений, SQL и object keys.).
|
||||
25. Nginx metrics/tracing в signoz
|
||||
@@ -61,4 +70,42 @@ debounce на отправку СМС (сейчас есть Фиксирова
|
||||
4. Разработка notification-service
|
||||
5. Подключить OTLP-провайдер
|
||||
6. Починить баги
|
||||
7. Второй контур для продакшн
|
||||
7. Второй контур для продакшн
|
||||
|
||||
# Переезд на тестовый домен
|
||||
**Нет — одного `.env` и новых сертификатов недостаточно.**
|
||||
|
||||
Нужно пройти цепочку:
|
||||
|
||||
### 1. DNS
|
||||
`A`-запись нового домена → IP ВМ (до выпуска сертификата).
|
||||
|
||||
### 2. `.env` — не одно поле, а все публичные URL
|
||||
- `PUBLIC_HOST`, `PUBLIC_WEB_URL`, `PUBLIC_API_URL`, `PUBLIC_AUTH_URL`
|
||||
- `KEYCLOAK_PUBLIC_URL`
|
||||
- `NGINX_TLS_CERTIFICATE` / `NGINX_TLS_CERTIFICATE_KEY` (путь `/etc/letsencrypt/live/<новый-домен>/...`)
|
||||
- `BITRIX_PUBLIC_BASE_URL`
|
||||
- `IDGTL_SMS_CALLBACK_PUBLIC_URL` (если SMS уже подключён)
|
||||
|
||||
### 3. Сертификат
|
||||
Certbot на новый `-d` / `--cert-name`, затем nginx с TLS.
|
||||
|
||||
### 4. Пересборка / перезапуск сервисов
|
||||
- **frontend-static** — URL зашиты на build (`EXPO_PUBLIC_*` из `PUBLIC_WEB_URL` / `PUBLIC_AUTH_URL`)
|
||||
- **keycloak** — `KC_HOSTNAME` из `KEYCLOAK_PUBLIC_URL`
|
||||
- **nginx**, **api-backend** и связанные сервисы — подхватить новый env
|
||||
|
||||
### 5. Настройки в БД (seed / app-settings)
|
||||
В `app-settings.production-like.yaml`:
|
||||
- `security.cors.allowed_origins` → `https://новый-домен`
|
||||
- `notification.instruction.allowed_hosts` → новый хост
|
||||
|
||||
После правки — снова `deployment/scripts/seed.sh` (или ручное обновление в БД).
|
||||
|
||||
### 6. Внешние системы
|
||||
- **S3 CORS** (Selectel) — `Allowed origin: https://новый-домен`
|
||||
- **Bitrix24** — URL установки/обработчика (`/bitrix/install`, `/bitrix/handler`)
|
||||
- **Keycloak client** — redirect URIs / web origins (в realm сейчас зашиты конкретные домены вроде `chat.han0107.ru`)
|
||||
- **i-Digital** — callback URL, если провайдер его фиксирует
|
||||
|
||||
Итого: `.env` + сертификат — ядро, но без DNS, CORS (API + S3), rebuild frontend, Keycloak hostname/redirects, Bitrix URL и seed CORS логин/загрузки/интеграции сломаются.
|
||||
Reference in New Issue
Block a user