Como enviar minhas credenciais de login para o Hotmail por meio de um script?

Eu quero fazer um script para enviar meu nome de usuário e senha para o hotmail para que eu possa estar logado sem percorrer a página de login. Não quero usar a opção “Assine-me automaticamente” por vários motivos. Eu examinei o código fonte para tentar tentar entender como o Hotmail envia as credenciais para o servidor para validação, mas não consigo fazer as cabeças das caudas do código-fonte. Qualquer ajuda é apreciada.

Eu leio um post aqui perguntando algo muito parecido, mas com propósito diferente – embora a resposta dada não seja o que eu estou procurando.

Usando o Firefox, eu apenas crio um marcador chamado hm na checkbox “localização” cole no código abaixo, quando eu carregar a página do hotmail, acabei de clicar no marcador.

javascript:%20document.getElementsByName('login').item(0).value='yourname@hotmail.co.uk';%20document.getElementsByName('passwd').item(0).value='yourpass';%20document.getElementsByName('SI').item(0).click();%20void(0); 

Solução para automatizar isso através de um navegador

Sugerido pelo User574632. Esta não é a única solução, mas é mais fácil.

Eu vim com duas soluções; um para uso com o Internet Explorer e outro para uso com o Firefox. Ambas as soluções funcionam com o navegador para automatizar esta tarefa.

Solução 1 – Internet Explorer e AutoIt

Como acontece, o AutoIt é muito bom na automação das funções do IE. Depois de ler uma pergunta semelhante no fórum de ajuda do AutoIt aqui , achei a maior parte do que eu precisava. Acabei de adicionar suporte para parâmetros de linha de comando e voila. Aqui está o código escrito em AutoIt:

 #include  Opt("WinTitleMatchMode", 2) $oIE = _IECreate ("http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=10&ct=1227208038&rver=5.5.4177.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx%3Fn%3D1521319951&id=64855") _IELoadWait ($oIE) $o_form = _IEFormGetObjByName ($oIE, "f1") $o_login = _IEFormElementGetObjByName ($o_form, "login") $o_password = _IEFormElementGetObjByName ($o_form, "passwd") $o_signin = _IEFormElementGetObjByName ($o_form, "SI") $username = $CmdLine[1] ; "YOUR_HOTMAIL_ADDRESS@hotmail.com" $password = $CmdLine[2] ;"YOUR_PASSWORD" _IEFormElementCheckBoxSelect ( $o_form, "remMe", "", 0) _IEFormElementSetValue ($o_login, $username) _IEFormElementSetValue ($o_password, $password) _IEAction ($o_signin, "click") WinSetState ( "Internet", "", @SW_MAXIMIZE ) 

Observe que isso não foi escrito por mim, eu apenas o modifiquei para aceitar parâmetros de linha de comando.

Após a compilation, o uso é: Executable.exe "EmailAddress@hotmail.com" "Password"

Solução 2 – Firefox e iMacros

  1. Instale o iMacros aqui: https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/

  2. Abra iMacros e crie um marco

  3. Insira o seguinte script, substituindo o endereço de e-mail e a senha com os seus próprios:

 VERSION BUILD=8601111 RECORDER=FX TAB T=1 URL GOTO=https://login.live.com/ppsecure/post.srf?wa=wsignin1.0&rpsnv=12&ct=1391468097&rver=6.4.6456.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1033&id=64855&mkt=en-us&cbcxt=mai&snsc=1&bk=1391468099&uaid=9d4d29da2c304ed581e61d3fc51be1eb TAG POS=1 TYPE=DIV ATTR=ID:idDiv_PWD_UsernameExample TAG POS=1 TYPE=INPUT:EMAIL FORM=NAME:f1 ATTR=ID:i0116 CONTENT=EMAILADDRESS@hotmail.com SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:f1 ATTR=ID:i0118 CONTENT=PASSWORD TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:f1 ATTR=ID:idSIButton9 

Em seguida, nomeie a macro como “HotmailLogin.iim”

Tudo o que você precisa fazer para usá-lo é criar um atalho com parâmetros de linha de comando como este:

"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m=HotmailLogon.iim

Isso não é possível sem realmente ter seu navegador visitar a página de login do hotmail.com, por várias razões:

  1. Você não pode usar o PHP para fazer isso, pois o PHP é totalmente serveride e logar um servidor não tem absolutamente nenhum efeito sobre você (o cliente). Entraria, não você.
  2. Você também não pode usar o javascript para definir qualquer tipo de cookie / session para o hotmail.com a partir de um domínio diferente (isso não é hotmail.com) devido a prevenções de segurança que garantem que você não pode configurar um cookie para o domínio A de uma página no domínio B.
  3. Fazer um pedido POST de um domínio diferente também não é permitido pelo protocolo HTTP, então não há aqui também. Seu navegador bloqueará qualquer solicitação POST de uma página na A.com tentando publicar no servidor B.com
  4. O Hotmail obriga você a primeiro a acessar sua página de login para obter um cookie especial com um ID de session. Somente se essa ID de session especial for enviada de volta com a solicitação POST, o hotmail permitirá que a solicitação seja realizada. Então, você ainda precisa primeiro obter o ID da session.

Então, em resumo: não.

Intereting Posts