3.4 KiB
3.4 KiB
Безопасность
Безопасность Minishop в первую очередь держится на стабильных секретах, корректном разделении публичных доменов и ограниченном доступе к админке.
Секреты
WEBAPP_SESSION_SECRETдолжен быть постоянным между рестартами, иначе Web App-сессии станут невалидными.WEBHOOK_SECRET_TOKENзащищает вебхук Telegram.PANEL_WEBHOOK_SECRETпроверяет входящие события Remnawave Panel. Секрет задается в Remnawave Panel и вставляется в настройки бота.- Платежные токены и webhook-секреты храните в
.envили настройках админки с учетом доступа к серверу.
Сгенерировать секрет можно так:
openssl rand -hex 32
Доступ администраторов
ADMIN_IDSзадает Telegram ID администраторов.- Админка доступна только пользователям из
ADMIN_IDSпри входе через Telegram. - Email-only аккаунты не получают админский доступ.
Публичные URL
WEBHOOK_BASE_URLдолжен вести на backend-сервер вебхуков.- В Remnawave Panel
WEBHOOK_URLдолжен бытьWEBHOOK_BASE_URL+/webhook/panel, напримерhttps://app.example.com/webhook/panel. SUBSCRIPTION_MINI_APP_URLдолжен вести на frontend/Mini App-домен.- Не добавляйте
/api,/authили webhook-пути вSUBSCRIPTION_MINI_APP_URL.
IP allowlist вебхуков
- Reverse proxy для
WEBHOOK_BASE_URLдолжен передаватьX-Forwarded-Forс реальным IP отправителя. TRUSTED_PROXIESдолжен включать IP/CIDR последнего proxy-hop до backend. Иначе платежные webhook-обработчики будут проверять allowlist по IP proxy или Docker gateway.- В Docker Compose профилях Caddy, Nginx и Pangolin/Newt дефолт покрывает loopback и private ranges:
127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fc00::/7. - Если backend находится в общей Docker-сети с недоверенными контейнерами, сузьте
TRUSTED_PROXIESдо конкретных IP ваших reverse proxy. - Если вы сознательно хотите доверять любому proxy-hop, используйте
0.0.0.0/0,::/0, но только когда backend не опубликован напрямую, а внешний proxy очищает входящийX-Forwarded-For.
Дополнительно
- Используйте HTTPS на всех публичных доменах.
- Ограничивайте доступ к серверу и
.env. - Следите за логами платежных вебхуков и вебхуков панели.
- После ротации секретов перезапускайте соответствующие сервисы и проверяйте вебхуки.
См. также переменные окружения и развертывание.