PHP Curl API - файлы cookie на удаленном сервере не работают при использовании curl - PullRequest
2 голосов
/ 11 марта 2019

Я пытаюсь создать API и получить к нему доступ с помощью PHP.

Это мой код для доступа к странице - login.php

$postValues = http_build_query($postValues);
echo $postValues;

$curl = curl_init();
$options = array(
    CURLOPT_URL => https://mywebsite.com/index.php,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postValues,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_SSL_VERIFYPEER => true,
    //CURLOPT_USERAGENT => $authUserAgent,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_COOKIEJAR => 'cookies.txt',
    CURLOPT_COOKIEFILE => 'cookies.txt',
);
curl_setopt_array($curl, $options);
curl_exec($curl);

 //The remote page I would like to access
curl_setopt($curl, CURLOPT_URL, 'https://mywebsite.com/login-home.php');


$test = curl_exec($curl);
print_r($test);

curl_reset($curl);
curl_close($curl);

Это мой код для входастраница - login.php

<code>if(
    ($_POST['first_name'] == 'secret-word-1') AND 
    ($_POST['second_name'] == 'secret-word-2') AND 
    ($_POST['third_name'] == 'secret-word-3')

){
    echo 'Everything is correct';
    $setcookie = setcookie('books-login-cookie', 'books-cookie-value', time() + (100),'/');
}


if(isset($setcookie)){
    echo $setcookie;
    header('Location: login-home.php');
}else{
    echo 'No cookies!';
}

if(isset($setcookie)){
    echo $setcookie;
}else{
    echo 'Cookie cannot be set';
}

echo '<pre>';
echo $_COOKIE['books-login-cookie'];

print_r($setcookie);
echo '
';

Это код для проверки формы входа - login-val.php

<code>if(
    ($_POST['first_name'] == 'secret-word-1') AND 
    ($_POST['second_name'] == 'secret-word-2') AND 
    ($_POST['third_name'] == 'secret-word-3')

){
    echo 'Everything is correct';
    $setcookie = setcookie('books-login-cookie', 'books-cookie-value', time() + (100),'/');
}

ECHO $setcookie;


if(isset($setcookie)){
    echo $setcookie;
    header('Location: login-home.php');
}else{
    echo 'No cookies!';
}

if(isset($setcookie)){
    echo $setcookie;
}else{
    echo 'Cookie cannot be set';
}

echo '<pre>';
echo $_COOKIE['books-login-cookie'];

print_r($setcookie);
echo '
';

Это моя безопасная страница, на которую я должен попасть - login-home.php

<code><?php

echo '<h1>SECURE PAGE</h1>';

$setcookie = null;
if(isset($_COOKIE['books-login-cookie'])){
    $setcookie = $_COOKIE['books-login-cookie'];
    echo 'Cookie monster is happy!';
}else{
    echo 'No cookies on SECURE PAGE!';
    header('Location: login.php');

}

echo '<pre>';
echo $setcookie;

print_r($_COOKIE);
echo '
';?>

Когда я пытаюсь использовать cURL, я получаю сообщение «Нет файлов cookie на БЕЗОПАСНОЙ СТРАНИЦЕ!»Это означает, что код cURL перенаправляется на страницу с ограниченным доступом, однако файлы cookie не установлены.В то же время, если мне нужно было перейти непосредственно к login.php, я получаю «Cookie monster is happy!».Это означает, что файлы cookie работают так, как они должны.

Разрешение files cookies.txt установлено на 777. Я не могу понять, почему оно не работает.

Яне заинтересован в безопасности, так как я пока что просто возился.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...