Нужен анализ PHP Curl Mozilla LiveHttpHeaders - PullRequest
0 голосов
/ 17 сентября 2011

Я пытался войти на сайт с помощью библиотеки PHP Curl. Несмотря на то, что я успешно вошел в систему, я не могу получить доступ к другим страницам, кроме страницы входа в систему. Теперь я знаю, что могут быть проблемы с куки, но поверьте мне, я перепробовал все возможные комбинации с COOKIEJAR и COOKIEFILE. Мне нужна была помощь в анализе этого набора информации LiveHTTPHeaders. Я беспокоюсь о полях сообщений - особенно Login.x и Login.y. Кажется, они меняются при каждом входе в систему. Может ли это быть проблемой? Как выяснить, как случайное целое число присваивается этому значению? Кроме того, добавлено более 1 куки? Если так, как я могу включить это в локон? Я использую один COOKIEJAR, несколько или именное количество файлов cookie в одном утверждении ..

Я вставил заголовки ниже-

http://amizone.net/Amizone/default.aspx

POST /Amizone/default.aspx HTTP/1.1
Host: amizone.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://amizone.net/
Cookie: ASPSESSIONIDSSBCDQAQ=FJHPMILBALMDGIFEOOOBNFHI
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
username=1596681&password=CENSORED&Login.x=14&Login.y=15

Я буду публиковать код cURL только при необходимости.

LiveHTTPHeaders информация для HOME PAGE:

GET /amizone/default.aspx HTTP/1.1
Host: amizone.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

LiveHTTPHeaders информация для входа: ** Показано сверху. Без изменений.

LiveHTTPHeaders информация для ЛЮБОЙ СТРАНИЦЫ ДОСТУПА ПОСЛЕ ВХОДА -

GET /amizone/WebForms/TimeTable/StudentTimeTableForWeek.aspx HTTP/1.1
Host: amizone.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://amizone.net/amizone/WebForms/Home.aspx
Cookie: ASP.NET_SessionId=hn5mfsre0y3b1l45nxlgzr55;                                                     UserId=127953D3849DEF71FB6CF9F55DD3BBADE48E686D24ADC87923FB6C60077ECC0362AB0C5A9C4DF194461C348DBAE6FEC861827F886FE2C17EA79155500CA4FC04EE897B7658A59DA2F286F2436F6EDD07BE2DD7DD829798F4C81ABAEFEE400B3A71078A74BF1C169BF1DA2865CC9E5968FF26ED7D; countrytabs=0; countrytabsRT=0; countrytabsRB=0

*** Обратите внимание, как в этом случае отправляется несколько файлов cookie (я думаю). Как должны измениться мои команды cookiejar и cookiefile?

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Этот код cURL был достаточным для меня в прошлом, чтобы поддерживать сеансы входа в систему путем хранения файлов cookie:

$ch = curl_init('https://somesecureurl.com/login/account');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/hmcookies.txt'); // cookies in this file are sent by curl with the request
curl_setopt($ch, CURLOPT_COOKIEJAR,  '/tmp/hmcookies.txt'); // upon completing request, curl saves/updates any cookies in this file

$data = curl_exec($ch);

В противном случае, файл cookiejar доступен для записи веб-сервером или имеет разрешение на создание файла.

Как также заявил Дэниел, некоторые сайты могут потребовать, чтобы вы сначала зашли на страницу входа в систему, чтобы получить первоначальный набор файлов cookie, а затем разместили форму входа. Таким образом, ваши запросы могут идти:

Request login page
Post to login form
Try to access protected page
1 голос
/ 18 сентября 2011

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

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

Таким образом, приложенной трассировки недостаточно.

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