Куки delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by killik77, 9 Mar 2013.

  1. killik77

    killik77 New Member

    Joined:
    5 Mar 2013
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте! Прошу помочь. У меня программа по не понятной причине не отправляет куки, из-а этого я не могу передвигаться по форуму через программу.
    Стоит indy 10.5. Для других сайтов куки отправляет.

    Вот собственно код:

    Code:
    var
    LoginInfo,LoginInfo2: TStringList;
    html:WideString;
    Response,Response2: TStringStream;
    pic: TJPEGImage;
    pre: TMemoryStream;
    md5pass,s: string;
    begin
    LoginInfo := TStringList.Create;
    Response := TStringStream.Create('');
    LoginInfo2 := TStringList.Create;
    Response2 := TStringStream.Create('');
    pic:= TJPEGImage.Create;
    pre:= TMemoryStream.Create;
    begin
    Http := TIdHTTP.Create(Self);
    Cookie := TidCookieManager.Create(nil);
    
    HTTP.Cookiemanager := cookie;
    HTTP.AllowCookies:=True;
    HTTP.HandleRedirects := True;
    http.request.useragent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01';
    http.request.host := 'zhyk.ru';
    http.request.Accept := 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
    http.request.AcceptLanguage := 'ru-RU,ru;q=0.9,en;q=0.8';
    http.request.Referer := 'http://zhyk.ru/forum/';
    http.request.Connection := 'Keep-Alive';
    http.request.ContentType := 'application/x-www-form-urlencoded';
    try
        LoginInfo.Add('vb_login_username='+sedit1.text);
        LoginInfo.Add('cookieuser=1');
        LoginInfo.Add('vb_login_password='+sedit2.Text);
        LoginInfo.Add('s=');
        LoginInfo.Add('securitytoken=guest');
        LoginInfo.Add('do=login');
        LoginInfo.Add('vb_login_md5password=');
        LoginInfo.Add('vb_login_md5password_utf=');
        http.Post('http://zhyk.ru/forum/login.php?do=login',LoginInfo, Response);
        sEdit3.Text := ParsToString('<input id="hash" type="hidden" name="humanverify[hash]" value="', Response.DataString, '" />');
        sEdit4.Text := ParsToString('<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=', Response.DataString, '">');
        html := http.Get('http://api.recaptcha.net/challenge?k='+sEdit4.Text);
        sEdit5.Text := Pars('challenge :', html, ',');
    
     http.Get('http://www.google.com/recaptcha/api/image?c='+sedit5.text, pre);
     pre.Position := 0;
     pic.LoadFromStream(pre);
     form2.Image1.Picture.Assign(pic);
     form2.showmodal;
    
    md5pass := StrToHex(MD5(sedit2.text));
    sedit6.Text:=md5pass;
    
        LoginInfo2.Add('humanverify[hash]='+sedit3.text);
        LoginInfo2.Add('recaptcha_challenge_field='+sedit5.text);
        LoginInfo2.Add('recaptcha_response_field='+form2.sedit1.Text);
        LoginInfo2.Add('s=');
        LoginInfo2.Add('securitytoken=guest');
        LoginInfo2.Add('do=dologin');
        LoginInfo2.Add('vb_login_password='+sedit6.text);
        LoginInfo2.Add('vb_login_username='+sedit1.text);
        LoginInfo2.Add('url=http://zhyk.ru/');
        LoginInfo2.Add('cookieuser=1');
        LoginInfo2.Add('postvars=');
        LoginInfo2.Add('logintype=');
        LoginInfo2.Add('cssprefs=');
        http.Post('http://zhyk.ru/forum/login.php?do=dologin',LoginInfo2, Response2);
        sEdit8.Text := ParsToString('<p class="smallfont"><a href="', Response2.DataString, '">');
        http.Get(sEdit8.Text);
        if pos('Спасибо, что зашли, '+sedit1.Text, Response2.DataString) <> 0 then
        ShowMessage('Успешный вход!')
        else
        ShowMessage('Неверный пароль!!!');
    
      except
    LoginInfo.Free;
    Response.Free;
    LoginInfo2.Free;
    Response2.Free;
    pic.Free;
    pre.Free;
      end;
      end;
    
     
  2. BlackIce

    BlackIce Elder - Старейшина

    Joined:
    10 Jan 2013
    Messages:
    100
    Likes Received:
    31
    Reputations:
    27
    А что мешает принять куки вручную из заголовков сервера? Отучивайтесь уже надеяться на чудокомпоненты...
     
  3. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    Возможно куки ставятся javascript'ом. Возьми снифер и проверь наличие Set_Cookie в ответах сервера.
     
  4. killik77

    killik77 New Member

    Joined:
    5 Mar 2013
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Set_Cookie присутствует.