Получение файлов cookie с веб-сайта с помощью веб-сканера / веб-мастера (PHP / cURL) - PullRequest
0 голосов
/ 18 декабря 2018

Я ищу способ получения файлов cookie с веб-сайта с помощью веб-сканера.Я изучил ситуацию, но не могу найти правильную библиотеку / способ решения своей проблемы.Я не ищу файлы cookie из браузера, я пытаюсь получить их с веб-сайта (любого веб-сайта).

Я надеюсь, что кто-то может предоставить мне правильное решение / библиотеку!Заранее спасибо!

С уважением, Майк

Редактировать : Я знаю, что есть похожие посты об этой библиотеке (-ях) для сканера.Но этот пост устарел, он с 2011 года.

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете получить файлы cookie с помощью php-curl с помощью чего-то вроде этого скрипта:

<?php    

// The url to visit
$url = "https://www.google.com";

// Where to read cookies from and where to write them
$cookiesFile = "cookies.txt";

// Setup
$handle = curl_init();

curl_setopt( $handle, CURLOPT_URL,              $url );
curl_setopt( $handle, CURLOPT_RETURNTRANSFER,   true );
curl_setopt( $handle, CURLOPT_FOLLOWLOCATION,   true );

// Send cookies upon request and update them as per response
curl_setopt( $handle, CURLOPT_COOKIEFILE,       $cookiesFile );
curl_setopt( $handle, CURLOPT_COOKIEJAR,        $cookiesFile );

// Send request, get response
$response = curl_exec( $handle );

// Done with curl
curl_close( $handle );

Что вы получаете внутри cookies.txt файл выглядит как ...

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.google.com TRUE    /   FALSE   1547833930  1P_JAR  2018-12-19-17
#HttpOnly_.google.com   TRUE    /   FALSE   1561053130  NID 150=OF8rpPblfIZCnga6aoN_Zo6_H9nv87Th7ggQZDijf76GJ11ZDkWXmQXEQ9cUOBC3z7vY_Ea0-NtGcK5wi8Qo3myU1nnNksfgTreuIHJRiI0-pEqN9v4H7YGafp6r0RFHFueUbJ9IWo3Bu83Sh3akVW6bXzY2I-rJvaIIGoW9Fdg

Cookiesхранятся в специальном формате, который называется Файл cookie HTTP Netscape , вы можете посмотреть на этот вопрос и связанные с ним ответы для получения более подробной информации.


При выполнении последующих запросов с вышеуказанным кодом файлы cookie, ранее полученные, считываются из файла cookie и отправляются вместе с запросом.Когда ответ получен, если файл cookie обновлен, файл также обновляется.

Это важно, поскольку при посещении php-curl других страниц того же веб-сайта хранение файлов cookie сохраняется согласованным.Думайте в качестве примера для файлов cookie сеанса.

Приведенный выше код хранит внутри $response HTTP-код посещенной страницы.


Обратите внимание, что если вам просто нужно посетить пару страниц и получить файлы cookie, это легкозадание, которое может быть выполнено только с помощью кода, показанного в начале.

Его можно легко настроить даже для выполнения запроса POST в случае, если вам нужно отправить данные, например, когда пользователь компилирует форму и отправляет ее.

Если вам нужно почистить весь сайт, все может быть не так тривиально.

Наконец, примите во внимание, что куки могут быть установлены с помощью кода JavaScript.

Если вам нужно посетитьинтерактивный / богатый JavaScript сайт и симуляция взаимодействия с пользователем, а затем проверка файлов cookie php-curl не подходит для этого.Вам нужно было бы написать скрипт безголового браузера.

...