Авторизация curl + php

Тема в разделе "PHP", создана пользователем cx717, 27 июл 2020.

Метки:
  1. cx717

    cx717

    Регистрация:
    4 сен 2014
    Сообщения:
    2
    Симпатии:
    0
    День добрый.
    Пытаюсь авторизаваться средствами php на сайте fl.ru ( дабы не просматривать каждый раз самому проекты, а получать на почту те, что наиболее подходят )
    Сам сайт fl.ru без авторизации парсится без проблем.
    То есть такой код выводит главную страницу fl.ru:
    Код:
           $user_agent = 'User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2';
           $ch = curl_init();
    
           curl_setopt($ch, CURLOPT_URL, 'https://www.fl.ru');
           curl_setopt($ch, CURLOPT_HEADER, 0);
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
           curl_setopt($ch, CURLOPT_TIMEOUT, 20);
           curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
           $content = curl_exec($ch);
           curl_close($ch);
    
           echo $content;
    
    А такой выдает false.
    Код:
    $user_agent = 'User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2';
           $ch = curl_init();
           
           curl_setopt($ch, CURLOPT_COOKIESESSION, true);
           curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
           curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');       
           curl_setopt($ch, CURLOPT_URL, 'https://www.fl.ru/login/' ); // отправляем на
           curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
           curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут
           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата
           curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
           curl_setopt($ch, CURLOPT_POSTFIELDS, array(
               
               'login' => 'my_login',
               'passwd' => 'my_pass',
               'recaptcha' => '03AGdBq26CWDGrG5nAAgDEJHJ6rZtQZavraATo-Jv7RlkIS3uDdNBWPSCxgw2ZpUyx4GURtqWgZDgAPW2R37zT0j9wEo8M-Gid4qlRR-ReTrD0gCC-xhbKAepG_tucV2h6VxWHeKFn0gzvF9psPKjsD5ccnNaNLaXhOqXr2tHvNB3HaE68lGz3XnEnqceAqGBxwTduCWHLpVx0zKvcUkGWJfgN9yodneWvo1exyHGxuI1MGGSPtftzX7ZJ06VUKlias-nlUc1AFrr4ScdnKsYEycdnqe9JzldT5Kv3wy3AzEDQJh8bNIg4Wn-IBELYdbRoR-Hqv0_xsvbT5YcBsdIy1LyObjKFESxQlNZ_npo-QvDe5NLb---4RrM',  // взял из данных браузера при ручном входе
               'u_token_key' => 'f011e39c87b888555d5a0838e87c4a63', // взял из данных браузера при ручном входе
           
           ));
           
           $content = curl_exec($ch);
           curl_close($ch);   
           
           var_dump($content);
    
    Подскажите плиз кто в курсе вопроса?
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    Добрый день.

    не моджет быть чтобы код рекапчи был всегда один и тот же. Т.е. при каждом логине у вас другой ключ.
    скорее всего u_token_key тоже динамический.
     
    Baco нравится это.
  3. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    всегда проверяйте и пишите об одном URL, какая разница что главная отдает 200 а страница с логином 403 (или 500), тестируйте в на одном роуте, ну и как подметил главнокомандующий, капча и токен как раз и созданы для того, чтобы ни DDoS не прошел и небыло брута кабинета, если используете софт (а-ля xevil), то нужно учитывать эти моменты и сперва их интеграцию в приложение настроить, а если просто скриптом на своем хосте чекаете, то скорее всего 500 ошибку получите, без авторизации на стороне FL. имхо.
     
    $iD нравится это.
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482