Delphi | Сталкивался кто-нибудь? В общем там 4 поля в посте отсылаются username password timezone_field blackbox Первые три нетрудно отправить, а вот 4 там генерируется код в JS, в общем помогите авторизоваться.
Зря. Если в експлорере будет выключен JS (что характерно для множества дедиков), то у клиента софт не будет работать. Сейчас посмотрю, что там на сайте. Кстати, ты не пробовал посылать пустой blackbox?
фунция генерации. В целом и общем - ставится значение _i_ed. Как его выдрать - пока хз. updateBlackboxes:function() { var _i_dk=""; if(this._i_ee) {_i_dk=this.__i_ee();} if(io_adp._i_ee&&io_adp._i_ed.length>0) {if(_i_dk.length>0) {_i_dk+=";";} _i_dk+=io_adp._i_ed;} _i_e=_i_dk; _i_dl=_i_y.getElementById(window.io_bbout_element_id); if(_i_dl&&_i_dl.value!==undefined){_i_dl.value=_i_e;} }
Интересная система у них, короче нужно скачать скрипт https://mpsnare.iesnare.com/snare.js Его разложить по полочкам. По сниферу видно что стоит запрет его кешировать, он генерируется относительно идента браузера и возможно относительно IP, короче его нужно каздый раз скачивать и парсить, а что парсить именно - надо смотреть после расшифровки, думаю здесь работы часа на 3, не больше.
Мне под чекер в прогу SinMobile 2.5, да плохо если у кого то не будет IE стоять, то без чекера останутся.
Вообщем там главные поля: username password остальные для красоты) А вот почему авторизация через Delph не происходит не пойму Вот так происходит если через страницу: Та наверно проверяется user-agent и т.д. надо на winsock попробывать)
Короче пишу Не авторизуется ипишет ошибку "You have cookies disabled in your browser. You need to enable cookies for skype.com before signing in." Типо куки не включены, куки менеджер кидаю, таже ошибка
Смотри в сниффере какие кукисы не передаются, но должны Если что фиксить CookieManager или самому парсить
ДАДа не все куки приходят по сравнению когда через мозилу авторизуешься вот то что снифер показывает: Запрос: Ответ: в проге ответ такой я хз че делать((
Ну вот видно что мозилла уже в пост запросе передает куки. Они видимо записываются еще на главной или странице логина? А ты сразу пост шлешь? Может сначала страницу логина посетить надо, чтобы эти куки записались? И еще про реферер не забывай, некоторые сайты требуют этого. PS Если дело окажется не в этом то парси "вручную" куки из заголовков PS2 Я бы посмотрел сам, но тупо акка нет, а регаться влом
Парси куки из ответа сервера и подставляй их в ручную, у меня была такая же проблема: Code: procedure TForm1.Button1Click(Sender: TObject); var Http: TIdHTTP; cook: TIdCookieManager; Data: TStringList; html_cod, cookie1, cookie2, header: String; IDHandler: TIdSSLIOHandlerSocketOpenSSl; begin try Http := TIdHTTP.Create(self); cook := TIDCookieManager.Create(Http); IdHandler := TIdSSLIOHandlerSocketOpenSSl.create(nil); IDHandler.SSLOptions.Method := sslvSSLv23; Http.IOHandler := IDHandler; data := TStringList.Create; Http.CookieManager := cook; Http.AllowCookies := true; Http.HandleRedirects := false; Http.Request.Host := 'auth.mail.ru'; Http.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6'; Http.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; Http.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3'; Http.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7'; Http.Request.Referer := 'http://win.mail.ru/cgi-bin/login'; Http.Request.Connection := 'keep-alive'; Http.Request.ContentType := 'application/x-www-form-urlencoded'; Data.Add('page='); Data.Add('post='); Data.Add('login_from='); Data.Add('Login='+Edit1.Text); Data.add('Domain='+'mail.ru'); Data.add('Password='+Edit2.Text); try html_cod := http.post('https://auth.mail.ru/cgi-bin/auth', data); except end; Memo1.text := http.Response.RawHeaders.Text; Delete(header, 1, pos('Set-Cookie: ', header)+11); cookie1 := copy(header, 1, pos('Set-Cookie: ', header) -2); Delete(header, 1, pos('Set-Cookie: ', header)+11); cookie2:= header; http.Request.CustomHeaders.Text:='Cookie: '+cookie1 +#10#13+cookie2; html_cod := http.get('http://mail.ru/'); finally Data.free; http.Free; //cook.Free; end; if pos('checkcookie', html_cod)> 0 then Edit3.Text := 'Авторизация прошла успешно!' else Edit3.Text := 'Авторизация не удалась!'; end;
Такс... запрос cl->ser Code: HEAD /intl/ru/account/login-form HTTP/1.1 Host: login.skype.com Content-Length: 0 Так мы делаем запрос на полчн. куки овтет ser->cl Code: HTTP/1.1 200 OK Date: Fri, 15 Oct 2010 18:25:51 GMT Server: Apache Set-Cookie: skype-login=jmsnk0vh7qmaoit379ujqsqna7; path=/; domain=.skype.com; secure; HttpOnly Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: SC=CC=:CCY=:LC=ru:LIM=:TM=1287167151:TS=1287167151:TZ=:VAT=:VER=; expires=Sat, 15-Oct-2011 18:25:51 GMT; path=/; domain=.skype.com Vary: User-Agent,Accept-Encoding Content-Type: text/html Куку получили, обрабатывай вручную или оставь это дело компонентам. cl->ser (пост даныне) Code: POST /intl/ru/account/login-form HTTP/1.1 Host: login.skype.com Cookie: SC=CC=:CCY=EUR:LC=ru:LIM=:TM=1287167070:TS=1286900630:TZ=:VAT=:VER=0/4.2.0.187/259; skype_s_vi=265C4190851D3DBB-4000012BC001D652 Content-Type: application/x-www-form-urlencoded Content-Length: 36 username=LOGIN&password=PASS ser->cl Code: HTTP/1.1 302 Found Date: Fri, 15 Oct 2010 18:27:48 GMT Server: Apache Set-Cookie: skype-login=f9k4ga7850n2r8idamu1mkm381; path=/; domain=.skype.com; secure; HttpOnly Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: skype-login=nldhep1j0dcjo8klcmjkp55cc4; path=/; domain=.skype.com; secure; HttpOnly Set-Cookie: SC=CC=:CCY=EUR:LC=ru:LIM=:TM=1287167268:TS=1286900630:TZ=:VAT=:VER=0/4.2.0.187/259; expires=Sat, 15-Oct-2011 18:27:49 GMT; path=/; domain=.skype.com Location: https://login.skype.com/intl/ru/account/login-exit Vary: User-Agent,Accept-Encoding Content-Length: 0 Content-Type: text/html Редирект 302, обрабатывай корректно подставляя кукисы, после 4 редиректа(можно попробовать с уже имеющмс. кукисами обратиться на страницу пользователя, напрямую минуя все редиректы , но не факт что получится, нету время попробовать, но ты попробуй, меньше запросов - лучше), после всех манипуляций с редиректами получишь долгожданную страницу (200 0К). p.s Если что icq 66-75-75, пиши помогу.