Программно войти на сайт SSL с помощью cURL и PHP

0

Моя тревожная компания имеет личную страницу статуса для меня, и я хочу программно войти на страницу состояния, чтобы получить некоторые статусы, используя PHP и cURL.

Однако в форме входа используется CSRF, поэтому моя первоначальная идея заключалась в том, чтобы очистить сайт, получить значения полей и передать их с помощью PHP и cURL и сохранить файлы cookie в файле cookie.

Проблема, насколько я понимаю, заключается в том, что на сайте входа используется Backbone, и много контента загружается с помощью JavaScript. Поэтому всякий раз, когда я пытаюсь извлечь данные, я перенаправляюсь на страницу "Выберите вашу страницу", даже если мне удастся войти в систему.

Страница, на которую я пытаюсь войти, - https://mypages.verisure.com, и это код, который у меня есть:

<?php

$username = '[email protected]';
$password = 'xx';
$loginUrl = 'https://mypages.verisure.com/j_spring_security_check?locale=no_NO';

// init curl
$ch = curl_init();

// set the url to work with
curl_setopt( $ch, CURLOPT_URL, $loginUrl );

// enable http post
curl_setopt( $ch, CURLOPT_POST, 1 );

// set the post parameters
curl_setopt( $ch, CURLOPT_POSTFIELDS, 'j_username=' . $username . '&j_password=' . $password . '&spring-security-redirect=%2Fno%2Fstart.html' );

// handle cookies for the login
curl_setopt( $ch, CURLOPT_COOKIEJAR, 'cookie.txt');

//Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
//not to print out the results of its query.
//Instead, it will return the results as a string return value
//from curl_exec() instead of the usual true/false.
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );

// execute the request
$store = json_decode( curl_exec( $ch ) );

if ( $store->status == 'ok' )
{
    curl_setopt( $ch, CURLOPT_URL, 'https://mypages.verisure.com' . $store->redirectUrl );

    $content = curl_exec( $ch );

    var_dump( $content );
}

?>

Переменная $store содержит следующее:

{
    "status": "ok",
    "redirectUrl": "/no/start.html",
    "message": null
}

У вас есть какие-либо советы о том, как войти на сайт, использующий SSL и JavaScript.

Теги:
curl
ssl
backbone.js
remote-login

1 ответ

1

cURL и PHP, вероятно, не являются подходящими инструментами, если требуется JavaScript. Вместо этого вы можете попробовать PhantomJS, который является браузером без браузера Webkit и может использоваться для автоматизации взаимодействия с веб-сайтами, даже если задействован JavaScript.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню