Не работает POST запрос

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Dryn9, 13 Dec 2012.

  1. Dryn9

    Dryn9 New Member

    Joined:
    6 Jul 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Привет, пытаюсь написать автореггер для urban-rivals.com
    вот мой POST запрос:

    Http := TIdHTTP.Create(Self);
    Data := TStringList.Create;
    Http.AllowCookies := true;
    Http.HandleRedirects := true;
    Http.Request.Host:='www.urban-rivals.com';
    Http.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1';
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.Referer:='http://www.urban-rivals.com/ru/player/signup.php';
    Data.Add('action=subscribe');
    Data.Add('timezone=-3');
    Data.Add('country=ru');
    Data.Add('email=мыло');
    Data.Add('login=логин');
    Data.Add('password=мойпароль');
    Data.Add('userdigit='+edt1.text); //тут капча, получаю ее и вводу в edt1.text
    Data.Add('newsletter=false');
    Data.Add('cgv=yes');
    Data.Add('sponsor=');
    Data.Add('promocode=');
    s := Http.Post('http://www.urban-rivals.com/ru/player/signup.php',data);

    пост запрос отправляю, а аккаунт не регистрируется.
     
  2. herfleisch

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

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    Что сервер-то отвечает?
     
  3. Dryn9

    Dryn9 New Member

    Joined:
    6 Jul 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Проснифал, вот что отвечает:

    Response Headers Value
    (Status-Line) HTTP/1.1 200 OK
    Server Apache/2.2.22 (Ubuntu)
    Vary Accept-Encoding
    Cache-control max-age=0, no-cache, no-store
    Content-Type text/html; charset=UTF-8
    P3P policyref="/w3c/p3p.xml"
    Date Thu, 13 Dec 2012 13:51:18 GMT
    Expires Wed, 12 Dec 2012 13:51:18 GMT
    Pragma no-cache
    Content-Language ru
    Connection close
    Set-Cookie locale=ru; expires=Tue, 12-Dec-2017 13:51:18 GMT; path=/
    Set-Cookie UR_SESSID=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
    Set-Cookie ur_auto_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
    Set-Cookie ur_auto_pass=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
     
  4. Dryn9

    Dryn9 New Member

    Joined:
    6 Jul 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    http://rghost.ru/42215511
    Вот исходник. Не знаю уже что делать, 2-ой день мучаюсь( Вроде запрос правильный.
     
  5. herfleisch

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

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    Проснифай туже самую операцию, но выполненную с помощью браузера. И сравни.
     
  6. Dryn9

    Dryn9 New Member

    Joined:
    6 Jul 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    herfleisch
    Сравнивал, POST запрос одинаковый, только мой кукисы не отправляет.
     
  7. Dryn9

    Dryn9 New Member

    Joined:
    6 Jul 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    во еще что нашел при сниффе программы

    1005 Functional The PRG (POST-REDIRECT-GET) pattern was not used and may cause certain duplicate form submissions and affect the use of the browser's back button.
    Return a 3xx redirect instead of a 200 Ok response.
    http://en.wikipedia.org/wiki/Post/Redirect/Get 1

    2001 Performance Use HTTP compression to compress textual content transferred from web servers to browsers for faster Downloads 1
    2005 Performance A "Connection: close" response header stops the use of keep-alive connections. Using keep-alive connections is very important for improving HTTP performance. It may create less network traffic and reduce latency on subsequent request due to avoidance of initial TCP connection set up. 1

    3004 Security The HttpOnly flag was not set on the "locale;UR_SESSID;ur_auto_id;ur_auto_pass" cookie. Using the HttpOnly flag when generating a cookie helps mitigate the risk of client side script accessing the protected cookie. It causes the attack to fail by preventing the malicious (usually XSS) code. 1
     
  8. muip

    muip New Member

    Joined:
    1 Sep 2011
    Messages:
    45
    Likes Received:
    4
    Reputations:
    0
    Так так на регистрации стоит капча, то у нее как минимум должна быть кукиса либо какой-то sid, номер или что-то подобное. Помимо символов с картинки капчи, скрипту вместе с твоими данными нужно передать кукису капчи или ее sid, чтобы скрипт собственно смог определить правильно ты ввел символы или нет.

    То есть сейчас ты передаешь серверу данные без кукисы капчи и сервер не понимает какая именно картинка у тебя загрузилась чтобы проверить, после чего посылает тебя попробовать попытку регистрации заново.