# Безопасность

Безопасность Minishop в первую очередь держится на стабильных секретах, корректном разделении публичных доменов и ограниченном доступе к админке.

## Секреты

- `WEBAPP_SESSION_SECRET` должен быть постоянным между рестартами, иначе Web App-сессии станут невалидными.
- `WEBHOOK_SECRET_TOKEN` защищает вебхук Telegram.
- `PANEL_WEBHOOK_SECRET` проверяет входящие события Remnawave Panel. Секрет задается в Remnawave Panel и вставляется в настройки бота.
- Платежные токены и webhook-секреты храните в `.env` или настройках админки с учетом доступа к серверу.

Сгенерировать секрет можно так:

```bash
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`.

## Дополнительно

- Используйте HTTPS на всех публичных доменах.
- Ограничивайте доступ к серверу и `.env`.
- Следите за логами платежных вебхуков и вебхуков панели.
- После ротации секретов перезапускайте соответствующие сервисы и проверяйте вебхуки.

См. также [переменные окружения](env-vars.md) и [развертывание](../getting-started/deployment.md).
