首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过脚本将登录凭据发送到Hotmail?

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

Stack Overflow用户
提问于 2014-02-04 05:24:33
回答 3查看 2.1K关注 0票数 0

我想做一个脚本来发送我的用户名和密码到hotmail,这样我就可以登录,而不需要通过登录页面。出于各种原因,我不想使用“自动登录”选项。我看了看源代码,试图理解Hotmail是如何将凭据发送到服务器进行验证的,但我无法从源代码的尾部获得正面信息。任何帮助都是非常感谢的。

我读到一篇post here,问了一些非常相似的问题,但目的不同--尽管给出的答案并不是我想要的。

EN

回答 3

Stack Overflow用户

发布于 2015-04-02 19:19:42

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

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2014-02-04 06:17:43

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

由User574632建议。这不是唯一的解决方案,但它是一个更简单的解决方案。

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

解决方案1--Internet Explorer和AutoIt

碰巧的是,AutoIt非常擅长自动化IE的功能。在AutoIt帮助论坛here上阅读了类似的问题后,我找到了我需要的大部分内容。我只是添加了对命令行参数的支持。下面是用AutoIt编写的代码:

代码语言:javascript
运行
复制
#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--和iMacros

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

  • Open iMacros和create a marco

  • 插入以下脚本,将电子邮件地址和密码替换为您自己的:

代码语言:javascript
运行
复制
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

票数 0
EN

Stack Overflow用户

发布于 2014-02-04 05:34:58

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

PHP

  • 你不能使用PHP来做这件事,因为PHP完全是服务器端的,登录服务器对你(客户端)完全没有影响。它会自动登录,而不是你。

  • 你也不能使用javascript为来自不同域(不是hotmail.com)的hotmail.com设置任何类型的cookie /会话,因为安全预防措施确保你不能从域B上的页面为域A设置cookie。

  • 从不同的域发出POST请求也是不允许的,所以这里也不允许。您的浏览器将阻止来自A.com页面的任何POST请求,这些请求试图将post发送到服务器B.com

  • Hotmail会强制您首先转到其登录页面以获取带有会话ID的特殊cookie。只有当这个特殊的会话ID与POST请求一起发送回来时,hotmail才会允许该请求通过。所以你还是得先拿到sessionID。

所以简而言之:不。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21538081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档