Авторизация Joomla через curl

D
На сайте с 28.06.2008
Offline
997
84

Учусь заходить на сайт через curl, написал скрипт

$login = 'admin';
$password = 'admin1';

$site = 'https://site.ru/administrator/'; // страница авторизации
$post = 'username='.$login.'&password='.$password; // .'&'

function request($url,$post = 0){
    function isAuth( $data ){
        var_dump($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url ); 
    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_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_POST, $post!==0 ); // использовать данные в post

    $agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36';
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_REFERER, "https://site.ru/administrator/");
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'username'=> 'admin',
'password'=> 'admin1',
'lang: '=>'',
'option'=> 'com_login',
'task'=> 'login',
'return'=> 'aW5kZXgucGhw',
        '8a721ecb647126cd45a99ba102469693'=> '1'
    ));
    echo isAuth($data = curl_exec($ch))?'Success':'Failed';
    curl_close($ch);
}

request($site, $post);

Но зайти не получается ибо не прохожу проверку безопасности, строка 

 '8a721ecb647126cd45a99ba102469693'=> '1'

Каждый раз разная. Как понять на основании черго она генерируется?

D
На сайте с 28.06.2008
Offline
997
#1
Вопрос решил сам. Нужно сначала зайти на сайт, там в форме авторизации и будет этот токен. Спарсить его и уже потом вторым запросом заходить

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий