Хранение паролей для облачного python бота
У меня есть python бот, который заходит на сайт, ищет поля ввода логина и пароля, и вводит их (API на сайте нет, приходится делать именно так) и делает свои. Сам бот подключен к облаку Heroku. Однако в текущее время пароль находится в коде в открытом виде, я хотел бы зашифровать его (для хранения, с возможностью дешифровки при заходе на сайт). В таком случае нужно сохранять соль и ключ, но опять таки если кто-то достанет, то сможет получить исходный пароль. Что можно придумать для обеспечения безопасности данных?
Ответы (1 шт):
Хранить не только пароли и ключи прямо в коде, но там же держать юзер-неймы и емэйлы - худшая идея. А если они попадут в репозиторий, даже приватный, с их сохранностью можно попрощаться.
Шифрование в таком контексте ничего особенного не добавляет, только лишние заморочки, связанные с доступом.
Быть может, переменные окружения? Токен бота тоже в коде лежит? Конкретно для heroku вы разве вот так не делаете?
heroku config:set SITE_LOGIN=my-awesome-login SITE_PASSWORD=my-super-secret
А потом в коде можно их будет достать так:
print(os.environ['SITE_LOGIN'])
print(os.environ['SITE_PASSWORD'])
Для других облачных платформ все будет, быть может, по-другому, но смысл останется таким же.
И это не спасет от того случая, когда кто-то завладеет доступом к конкретно этому работающему dyno. А это уже другая история, тут ничего не сделаешь. Во всем остальном - достаточно надежно.
Документация: