Почему нельзя выкладывать токен бота в код на GitHub?
Я написал бота, токен просто вставил прямо в строчку Bot("123:AAE...") и залил проект на GitHub, чтобы показать другу. Это нормально или я что-то сделал не так? Везде пугают «не коммить токен».
2 ответа
Ты сделал не так, и это правда опасно. Токен — это полный доступ к боту. Если он попадёт в открытый репозиторий, любой может скачать его и управлять твоим ботом: рассылать спам от его имени, читать сообщения пользователей, удалить всё. Боты регулярно «угоняют» именно через токены, забытые в публичном коде.
Что делать прямо сейчас:
- Зайди к
@BotFather, выбери своего бота →/revoke. Старый токен сразу станет недействительным, и злоумышленник ничего не сможет. - Получи новый токен и больше не вставляй его прямо в код.
Правильно — хранить токен отдельно от кода (в переменной окружения или файле .env, который добавлен в .gitignore). Тогда в репозиторий уезжает только код, а секрет остаётся у тебя на компьютере.
Важный нюанс: даже если ты удалишь токен из файла новым коммитом, он останется в истории git. Поэтому простого удаления мало — обязательно сделай /revoke у BotFather. Это единственный надёжный способ закрыть утёкший токен.