如何通过脚本将我的登录凭据发送到Hotmail?

时间:2014-02-03 21:24:33

标签: javascript php json credentials hotmail

我想创建一个脚本来将我的用户名和密码发送到hotmail,这样我就可以登录而无需通过登录页面。出于各种原因,我不想使用“自动登录”选项。我看了一下源代码,试图了解Hotmail如何将凭证发送到服务器进行验证,但是我不能从源代码的尾部开始。任何帮助表示赞赏。

我读了post here问了一些非常相似的东西,但出于不同的目的 - 虽然给出的答案不是我想要的。

3 个答案:

答案 0 :(得分:1)

使用firefox我只是创建一个名为hm的书签 在“位置”框中粘贴下面的代码, 当我加载hotmail页面时,我只需点击书签。

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);

答案 1 :(得分:0)

通过浏览器自动执行此操作的解决方案

建议用户574632。这不是唯一的解决方案,但它更容易。

我想出了两个解决方案;一个用于Internet Explorer,另一个用于Firefox。这两种解决方案都可以与浏览器配合使用来自动执行此任务。

解决方案1 ​​ - Internet Explorer和AutoIt

正如它刚刚发生的那样,AutoIt非常擅长自动化IE的功能。在AutoIt帮助论坛here上阅读了类似的问题后,我找到了我需要的大部分内容。我刚刚添加了对命令行参数的支持和瞧。这是用AutoIt编写的代码:

#include <IE.au3>
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 )

请注意,这不是我编写的,我只修改它以接受命令行参数。

编译后,使用情况为:Executable.exe "EmailAddress@hotmail.com" "Password"

解决方案2 - Firefox和iMacros

  1. 在此处安装iMacros:https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/

  2. 打开iMacros并创建一个marco

  3. 插入以下脚本,用您自己的电子邮件地址和密码替换:

  4.   

    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
    

    然后将宏命名为“HotmailLogin.iim”

    使用它所需要做的就是使用命令行参数创建一个快捷方式,如下所示:

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

答案 2 :(得分:-1)

如果没有实际让浏览器访问hotmail.com登录页面,这是不可能的,原因有多种:

  1. 您不能使用PHP来执行此操作,因为PHP完全是服务器端,并且登录服务器对您(客户端)完全没有影响。它会登录,而不是你。
  2. 由于安全措施可确保您无法为域A设置Cookie,因此您也无法使用javascript从其他域(即非hotmail.com)为hotmail.com设置任何类型的Cookie /会话来自域名B的页面。
  3. HTTP协议也不允许从其他域发出POST请求,因此也不在此处。您的浏览器将阻止来自A.com页面试图发布到服务器B.com的任何POST请求
  4. Hotmail强制您首先进入其登录页面以获取具有会话ID的特殊cookie。只有当这个特殊会话ID与POST请求一起发回时,hotmail才允许请求通过。所以你仍然需要先获得sessionID。
  5. 简而言之:不。