Как отправить мои учетные данные для входа в Hotmail через скрипт?

Я хочу создать скрипт для отправки моего имени пользователя и пароля на hotmail, чтобы я мог войти в систему, не заходя на страницу входа. Я не хочу использовать опцию "войти в систему автоматически" по разным причинам. Я взглянул на исходный код, чтобы понять, как попытаться понять, как Hotmail отправляет учетные данные на сервер для проверки, но я не могу сделать заголовки из исходного кода. Любая помощь приветствуется.

Я прочитал пост здесь, спрашивая что-то очень похожее, но для другой цели - хотя данный ответ не тот, который я ищу.

3 ответа

Используя Firefox, я просто создаю закладку с именем hm в поле "location" и вставляю код ниже, когда я загружаю страницу 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);

Решение для автоматизации этого через браузер

Предложено пользователем574632. Это не единственное решение, но оно проще.

Я придумал два решения; один для использования с Internet Explorer, а другой для использования с Firefox. Оба решения работают с браузером для автоматизации этой задачи.

Решение 1- Internet Explorer и AutoIt

Как это и происходит, AutoIt очень хорошо автоматизирует функции IE. Прочитав аналогичный вопрос на справочном форуме AutoIt здесь, я нашел большую часть того, что мне было нужно. Я просто добавил поддержку параметров командной строки и вуаля. Вот код, написанный в 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 и создайте марку

  3. Вставьте следующий скрипт, заменив адрес электронной почты и пароль своим:

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

Это невозможно, если ваш браузер не посетит страницу входа в hotmail.com по разным причинам:

  1. Вы не можете использовать PHP для этого, так как PHP полностью серверный, и вход на сервер абсолютно не влияет на вас (клиента). Это будет вход в систему, а не вы.
  2. Вы также не можете использовать javascript для установки любого типа cookie / сеанса для hotmail.com из другого домена (не hotmail.com) из-за мер безопасности, которые гарантируют, что вы не можете установить cookie для домена A со страницы на домене B.
  3. Выполнение запроса POST из другого домена также не разрешено протоколом HTTP, поэтому здесь тоже нет. Ваш браузер заблокирует любой запрос POST со страницы на A.com, пытающейся опубликовать на сервере B.com
  4. Hotmail вынуждает вас сначала перейти на их страницу входа в систему, чтобы получить специальный файл cookie с идентификатором сессии. Только если этот специальный идентификатор сеанса будет отправлен обратно с запросом POST, hotmail разрешит выполнение запроса. Таким образом, вы все равно должны сначала получить sessionID.

Итак, вкратце: нет.

Другие вопросы по тегам