Не публикуйте токены, .env, payload с персональными данными, содержимое SQLite или готовые эксплойты в public issue.
Свяжитесь с владельцем репозитория через GitHub Security Advisory или защищённый канал. Укажите:
- версию и компонент;
- шаги воспроизведения без реальных секретов;
- ожидаемый и фактический результат;
- влияние и возможные последствия.
- храните
/etc/megapbx-max.envв режиме0600; - используйте разные значения для
MAX_BOT_TOKEN,MAX_WEBHOOK_SECRET,MEGAPBX_CRM_TOKENиMEGAPBX_API_TOKEN; - передавайте токены заголовками; для MegaPBX допускается явно включённый legacy query-token, при этом на всех reverse proxy исключите query string из логов;
- используйте HTTPS с доверенным сертификатом на порту 443;
- не отключайте проверку
X-CRM-TokenиX-Max-Bot-Api-Secret; - оставляйте query-token для MegaPBX выключенным, если CRM не требует legacy-режим;
- ограничивайте доступ к серверу,
/var/lib/megapbx-max, SQLite и journal; - ротируйте MAX-токен через настройки бота после подозрительных событий;
- не публикуйте
.env,.venv,data/, резервные копии и webhook fixtures с ПДн; - назначайте бота в рабочую группу только с минимально необходимыми правами;
- запускайте один экземпляр приложения на одну SQLite-базу.
SQLite хранит business ID звонка, текст уведомления, нормализованный номер, имя закрывшего оператора, идентификатор сообщения MAX и временные счётчики. Эти данные нужны для корреляции, дедупликации и TTL-очистки.
База должна находиться в закрытом каталоге сервиса. Резервные копии следует шифровать и удалять по retention-политике. По умолчанию приложение не создаёт бессрочное архивирование.
Application-лог не должен содержать payload, телефон, имя клиента или токены. Для корреляции в логах используется SHA-256 fingerprint.
MAX Webhook secret передаётся открытым заголовом и проверяется в постоянном времени. Это защита от случайного вызова endpoint, а не HMAC-подпись payload. Доступ к HTTPS endpoint и секрету остаются обязательными.
Любой участник рабочего чата может нажать кнопку, как и в Telegram-версии. Для более строгого контроля следует ограничить рабочий чат или добавить allowlist MAX user_id в следующей версии.