Задать вопрос

Как настроить аутентификацию на почте yandex без использования открытого пароля?

Есть скрипт который собирает почту с ящика используя открытую передачу пароля
username = 'user@yandex.ru'
password = 'password'
ymail = imaplib.IMAP4_SSL('imap.yandex.ru', '993')
ymail.login(username, password)

т.е. любой кто имеет доступ к файлу может слить пароль.
Есть ли возможность настроить закрытую аутентификацию?
Нашел функцию
ymail.login_cram_md5(username, password)
но не хватает знаний настроить ее и вообще поддерживает ли почта яндекса ее? Может есть другие варианты?
  • Вопрос задан
  • 851 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Во-первых, ваша передача пароля не открытая, она поверх SSL, но из файла действительно можно слить. Но что бы вы не делали - доступ к почте все равно можно будет получить, имея доступ к вашему скрипту, хотя бы модифицировав ваш же скрипт. Можно защитить только основной пароль. Это можно сделать включив двухфакторную аутентификацию и сгенерировав пароль приложения, как рекомендовали выше. Пароль приложения это все тот же пароль, но использовать его можно только для доступа к почте.

Можно использовать и другие способы аутентификации. CRAM-MD5 не поддерживается яндексом, т.к. он не хранит пароль в виде хэша, поддерживается XOAuth
https://tech.yandex.com/oauth/
вот здесь пример как авторизоваться в GMail, он должен подойти и для яндекса:
https://stackoverflow.com/questions/5193707/use-im...
но практически дополнительной безопасности такой способ не обеспечит.

Я бы на вашем месте не стал возиться с аутентификацией, а завел отдельный "небезопасный" ящик, куда перенаправил бы только те письма, с которыми надо работать на сервере, удалял бы письма после разбора сервером и не заморачивался бы с безопасностью этого ящика. В случае компрометации такого ящика можно просто создать новый ящик и перенаправить письма в него.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы