#php #curl
#php #curl
Вопрос:
Я создаю скрипт curl для тестирования веб-приложения, но когда он входит в систему, он выдает мне страницу с надписью «Недопустимый токен безопасности!».
Это мой код:
<?php
$username = '008C108';
$password = '8706405';
$loginUrl = 'http://localhost/ASTechOLE/login.php';
//init curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'user='.$username.'amp;pass='.$password);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//login
$store = curl_exec($ch);
echo $store;
?>
Я очень новичок в curl, поэтому я действительно не знаю, как это сделать.
Заранее спасибо.
Комментарии:
1. Похоже, что форма содержит токен для предотвращения XSRF — поэтому вам сначала нужно будет получить страницу, содержащую форму, через cURL, каким-то образом извлечь из нее значение токена, а затем отправить это значение токена вместе с остальными вашими данными в следующем запросе.
2. @04FS Как я могу проанализировать страницу формы, если я не вошел в систему?
3. Сначала сделайте запрос GET, чтобы получить HTML-код этой страницы, содержащий начальную форму. Что касается того, как получить значение токена из этого — зависит от специфики, но, вероятно, проще всего использовать небольшое регулярное выражение, ориентируясь на конкретное поле с помощью ID или аналогичного.