Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2014, 01:22   #1
shadowgm
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
Вопрос Ucoz auth

Есть кривоватый, но рабочий код авторизации на укозоподобных сайтах. Задача написать программу, которая авторизуется на укозе, заходит на страницу профиля и возвращает логин и пароль.

Код:
procedure TForm1.btn1Click(Sender: TObject);

var
post:TStringList;
Answer,page:string;

begin
//авторизуемся
idhtp1.CookieManager:=idckmngr1;
post:=TStringList.Create;
post.Add('user='+edt1.Text);
post.Add('password='+edt2.Text);
post.Add('rem=1');
post.Add('a=2');
post.Add('ajax=1');
post.Add('rnd=687');
post.Add('_tp_=xml');
answer:=Utf8ToAnsi(idhtp1.Post('http://site.ucoz.ru/index/sub/',post));
if Pos ('myWinLoadSD',Answer) > 0 then
ShowMessage('Auth OK')
else
ShowMessage('Wrong pass or username');
//заходим на страницу профиля
page :=  Utf8ToAnsi(idhtp1.Get('http://site.ucoz.ru/index/11'));
if Pos ('Доступ',page) <>0 then
memo2.Lines.Add('Нет') else
memo2.Lines.Add('Да');
//и тут сайт возвращает доступ запрещен

end;
может все дело в куках? как их передать сайту, чтобы GET запрос по ссылке site.ucoz.ru/index/11 возвращал страницу профиля, а не 403.

Что нее так делаю люди добрые?
shadowgm вне форума Ответить с цитированием
Старый 24.04.2014, 23:20   #2
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
По умолчанию

Держи полностью рабочий код авторизации на Ucoz сайте с проверкой авторизации:
Код:
procedure TForm1.sSpeedButton2Click(Sender: TObject);
begin
  Data:=TStringList.Create;
  HTTP.Request.Host:='wbot.at.ua';
  HTTP.Request.Connection:='keep-alive';
  HTTP.Request.Accept:='application/xml, text/xml, */*; q=0.01';
  HTTP.Request.CustomHeaders.Add('X-Requested-With: XMLHttpRequest');
  HTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36';
  HTTP.Request.ContentType:='application/x-www-form-urlencoded; charset=UTF-8';
  HTTP.Request.Referer:='http://wbot.at.ua/';
  HTTP.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
  Data.Add('user='+sEdit1.Text);
  Data.Add('password='+sEdit2.Text);
  Data.Add('a=2');
  Data.Add('ajax=2');
  Data.Add('_tp_=xml');
   memo1.Lines:=Data;
  pt:= HTTP.POST('http://wbot.at.ua/index/sub/',Data);
  memo2.Text:=pt;
  if Pos('<div class="myWinLoadSF" title=',pt) <> 0 then begin
  ShowMessage('Авторизация провалилась');
  pt:='';
end else
ShowMessage('Авторизация прошла успешно!');
   ngt:=pars('setTimeout("window.location.href=''"+ad+"', pt,'''",''1000'')]]>' );
  HTTP.GET('http://wbot.at.ua/'+ngt);
  pt:='';
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if HTTP=TIdHTTP.Create(self) then begin
if HTTP.Connected=True then begin
HTTP.Disconnect;
HTTP.Free;
end;
 end;
 end;
end.
Dima170792 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с установкой libapache2-mod-auth-mysql Ale}{ander Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 7 05.11.2013 10:53
Google Apps и 2-legged auth KingOfNothing PHP 0 10.06.2010 08:45
Ucoz СанькО Свободное общение 0 07.04.2010 12:55
UCOZ.RU L1NK. JavaScript, Ajax 0 05.11.2008 17:18