
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 10 Пользователь №: 32001 На форуме: Карма: ![]() |
Необходима помощь в написании участка кода (PHP) для авторизации на площадке aukro.ua
Самому справиться не получается - очевидно где-то куки теряются. Сколь будет стоить данная услуга? |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 26774 Пользователь №: 21350 На форуме: Карма: 756 ![]() |
тут видимо вот в чём нюанс, данные передаются на http://aukro.ua/sk_post_login.php в GET
session=ODgxZlAIUFIPDgkDVA8BBglbBlIAXVRVCAsEUwEJVVNcXAEEUQ8ABwkOBVdTDVAFCQ8CVVIJYjhlZA%3D%3D &global_login_hash=67928dfadf7aad0d80061947c7c8f1f872170aec &session_login_hash=7fb689b8ad05f05c63350c0414ab6dd09f479a70 &url=NmY3MFlCRUQMSRhRRF1DWxgTVh9cV1haRgdQVW5aXlNfCBlAWUYxNjE0 &no_dir=1 вот этот вот хеш, с солью или нет - вес проверяется. также видимо и проверяется хеш referer + session_id вообщем постарались ребята. это моё предположение. -------------------- HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
|
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 10 Пользователь №: 32001 На форуме: Карма: ![]() |
В принципе я эти данные беру из изначальной формы (enter_login.php) из хидденов и передаю дальше.
Там в одном месте идет переадресация не 302 переходом, а мета тегом refresh, соотвтетственно cUrl на этом месте отдает результат. Так вот .... если я этот резльтат отдаю броузеру, то броузер приходит на стартовую страничку залогиненным, а если я передаю cURL'у то остаюсь незалогиненным. Не могу понять в чем дело, но чую, что где-то что-то в куках теряется |
![]() |
|||
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Bogdan1975 а кто или что мешает перейти Курлом по ссылке которая в рефреше, далее?
Как то непонятно, если Вы скриптом, доходите до рефреша и отдаете в броузер результат, после чего, он рефрешится на титульную страницу залогиненым, то получается куки не используются?, т.к. у скрипта (курла) свои куки, у броузера соответственно свои. Либо же что то Вы недоговариваете или недосмотрели сами чего то. |
||
![]() |
۩
Дата
|
||
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 10 Пользователь №: 32001 На форуме: Карма: ![]() |
Вот и я так думаю, поэтому и обращаюсь - сам не справлюсь, знаний не хватает |
||
![]() |
|
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Bogdan1975 - Свой код не покажите?
|
![]() |
[x]
Дата
|
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Заходим на страницу логина
curl_setopt( $curl, CURLOPT_REFERER, 'http://www.google.com/' ); получаем формы( тут уж как удобнее, регулярки, классы, DOM ) [fields] => Array вот такие поля у меня(параметры полей изменены мной, имена полей оригинальные ). Указываем свои данные в [user_login] => и отправляем все на curl_setopt( $curl, CURLOPT_REFERER, 'http://aukro.ua/mainpage_login.php' ); Далее переходим куда нужно curl_setopt( $curl, CURLOPT_REFERER, 'https://ssl.aukro.ua/login.php' ); НАСТРОЙКИ КУРЛА
Все. Логинится с пол тычка. |
![]() |
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 10 Пользователь №: 32001 На форуме: Карма: ![]() |
<?php
include('simple_html_dom.php'); // подключаем Simple HTML DOM $url = 'http://aukro.ua'; // URL сайта на котором будем авторизоваться $urlTo = 'https://ssl.aukro.ua/login.php'; // URL на которой будем слать POST данные $login = 'xxxxxxx'; $pass = 'xxxxxxxxx'; $ch = curl_init('http://aukro.ua/mainpage_login.php'); curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); // попытка стереть куки curl_setopt ($ch, CURLOPT_VERBOSE, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"); $content=curl_exec($ch); //echo $content; $html = str_get_html($content); $global_login_hash=$html->find('form[id=form_login] input[name=global_login_hash]',0)->value; $session=$html->find('form[id=form_login] input[name=session]',0)->value; $session_login_hash=$html->find('form[id=form_login] input[name=session_login_hash]',0)->value; $url=$html->find('form[id=form_login] input[name=url]',0)->value; $cod=$html->find('form[id=form_login] input[name=cod]',0)->value; $version=$html->find('form[id=form_login] input[name=version]',0)->value; //echo $global_login_hash.'<br>'; unset($ch); $post1='global_login_hash='.$global_login_hash.'&session='.$session.'&session_login_hash='.$session_login_hash.'&url='.$url.'&cod='.$cod; $post1_1='session='.$session.'&global_login_hash='.$global_login_hash.'&session_login_hash='.$session_login_hash.'&url='.$url.'&cod='.$cod; //'&version='.$version; $post2='&user_login='.$login.'&user_password='.$pass; //echo $post1.'<br>'; $ch = curl_init(); // Инициализируем сеанс CURL //curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную // не проверять SSL сертификат curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_VERBOSE, TRUE); // не проверять Host SSL сертификата curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt($ch, CURLOPT_REFERER, 'https://ssl.aukro.ua/enter_login.php?'.$post1.'&version='.$version); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"); curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST curl_setopt($ch, CURLOPT_POSTFIELDS, $post1_1.'&version='.$version.$post2); // Передаем POST данные //Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод. //curl_setopt($ch, CURLOPT_HEADER, true); //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных $html = curl_exec($ch); // Записываем пришедшие данные в переменную $f=fopen('html1.txt','w'); fwrite($f,$html); fclose($f); //$result = curl_multi_getcontent ($ch); $a1=strpos($html,'/direct_login.php'); $a2=strpos($html,'><P><b>Автоматическое'); $str=substr($html,$a1,$a2-$a1-1); $f=fopen('str.txt','w'); fwrite($f,$str); fclose($f); echo $str.'<br>'; $tm=time(); while ((time()-$tm)<3); curl_close($ch); //echo $html; /* $tm=time(); while ((time()-$tm)<3); */ $ch = curl_init('http://www.aukro.ua'.$str); //curl_setopt($ch, CURLOPT_URL, 'http://www.aukro.ua'.$str); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt ($ch, CURLOPT_VERBOSE, TRUE); curl_setopt($ch, CURLOPT_REFERER, 'https://ssl.aukro.ua'.$str); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"); curl_setopt($ch, CURLOPT_POST, false); // Говорим, что информация будет отправляться методом POST curl_setopt($ch, CURLOPT_HTTPGET, true); //Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод. curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $html = curl_exec($ch); // Записываем пришедшие данные в переменную $f=fopen('html2.txt','w'); fwrite($f,$html); fclose($f); curl_close($ch); // Закрываем сеанс работы CURL echo 'html: '.$html.'<br>'; //echo 'result: '.$result.'<br>'; ?> |
![]() |
۩
Дата
|
||
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 10 Пользователь №: 32001 На форуме: Карма: ![]() |
Спасибо большое. Вобщем-то как-то странно отрабатывает: информации о пользователе вверху нет (как это происходит при браузерной авторизации), НО уникальный пользовательский контент выдает ![]() Главное теперь в дальнейшем процессе не потерять авторизацию ... ![]() Еще раз спасибо. |
||
![]() |
|
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Не за что, информация скорее всего грузиться Аяксом, я не проверял, но так подозреваю ))
|
![]() Unregistered ![]() |
Не работает. И в форме у меня таких данных нет (
Аукро что-то изменили? |
|
![]() |
![]() ![]() ![]() |