WhiteListChecker не должен хранить Telegram BOT_TOKEN в Android-приложении.
BOT_TOKEN должен находиться только в Cloudflare Worker secrets.
В Android-приложении пользователь вводит только:
- Worker URL;
- Relay Secret;
- Telegram chat_id / получателей.
- Открой Cloudflare Worker.
- Замени
RELAY_SECRETв Worker secrets. - Обнови Relay Secret в приложении.
- Проверь Worker через приложение.
- Открой BotFather.
- Выпусти новый token для бота.
- Обнови
BOT_TOKENв Cloudflare Worker secrets. - Проверь Worker через приложение.
Не публикуйте:
BOT_TOKEN;RELAY_SECRET;PUBLIC_BOT_TOKEN;TELEGRAM_WEBHOOK_SECRET;DEVICE_TOKEN_PEPPER;ADMIN_API_SECRET;- device token;
- Authorization headers;
local.properties;- release keystore;
- приватные ключи;
- реальные логи с секретами.
Центральный Cloudflare Worker использует отдельные secrets:
PUBLIC_BOT_TOKEN;TELEGRAM_WEBHOOK_SECRET;DEVICE_TOKEN_PEPPER;ADMIN_API_SECRET.
Android-приложение не хранит PUBLIC_BOT_TOKEN и не вызывает Telegram Bot API напрямую для центрального публичного бота.
BuildConfig.PUBLIC_SERVICE_BASE_URL не является секретом: это только адрес центрального API. Он не должен содержать tokens, query parameters или пользовательский Relay Secret.
Device token центрального сервиса:
- возвращается Android только при регистрации установки;
- хранится на устройстве через Android Keystore-backed encryption;
- в D1 хранится только как hash/HMAC с server-side pepper;
- не должен попадать в логи, UI, bug reports или документацию.
Публичная статистика не должна раскрывать installationId, chatId, token hash или raw report отдельного устройства.
Автоопределение региона и города:
- запускается только по явному действию пользователя;
- использует только приблизительное location permission;
- не сохраняет и не отправляет координаты, raw address, улицу или postal code.
Автоопределение оператора не должно читать номер телефона, IMEI, IMSI или SIM serial.
Если вы нашли проблему безопасности, создайте GitHub Issue без публикации секретов и приватных данных.