Если я предоставляю POP-серверу неверные учетные данные с помощью poplib, почему я не могу повторить попытку с правильными? - PullRequest
1 голос
/ 07 августа 2011

Я пишу скрипт для входа в Hotmail.Он просит пользователя ввести пароль, и если он получит правильный пароль, все хорошо.

Однако, если они неправильно введут пароль в первый раз, действующий пароль не будет работать при последующих попытках.

Это то, что я использую для ввода пользователем своего пароля:

import poplib

M = poplib.POP3_SSL('pop3.live.com', 995) #Connect to hotmail pop3 server
M.set_debuglevel(2)
success = False;
user = "email@hotmail.com"

while success == False:
    try:
        password = raw_input("password: ")
        M.user(user)
        M.pass_(password)
    except:
        print "Invalid credentials"
    else:
        print "Successful login"
        success = True

Вот вывод с включенным уровнем отладки 2:

$ python my_program.py
password: password
*cmd* 'USER email@hotmail.com'
*put* 'USER email@hotmail.com'
*get* '+OK password required\r\n'
*resp* '+OK password required'
*cmd* "PASS password"
*put* "PASS password"
*get* '+OK mailbox has 1 messages\r\n'
*resp* '+OK mailbox has 1 messages'
Successful login

$ python my_program.py
password: 1234
*cmd* 'USER email@hotmail.com'
*put* 'USER email@hotmail.com'
*get* '+OK password required\r\n'
*resp* '+OK password required'
*cmd* 'PASS 1234'
*put* 'PASS 1234'
*get* '-ERR authentication failed\r\n'
*resp* '-ERR authentication failed'
Invalid credentials
password: password
*cmd* 'USER email@hotmail.com'
*put* 'USER email@hotmail.com'
*get* '+OK password required\r\n'
*resp* '+OK password required'
*cmd* "PASS password"
*put* "PASS password"
Invalid credentials

Чего мне здесь не хватает?Я должен отметить, что я очень плохо знаком с Python.

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Хорошо, я полагаю, вы получаете только одну попытку входа с объектом из poplib. Решение состояло в том, чтобы переместить объявление «M» в цикл while (клянусь, я пытался это сделать перед публикацией, но я, должно быть, как-то его заполнил).

0 голосов
/ 07 августа 2011

Насколько я управлял почтовым сервером провайдера, атаки методом перебора были большой проблемой для нас. Я представляю, насколько он велик для Hotmail! Я думаю, что тайм-аут после сбоя - дерьмовый обходной путь, который они нашли.

...