php curl авторизация на сайте

Автоматическая авторизация на сайте с помощью CURL

Парсинг сайтов

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

Перед изучением данного урока изучите работу с сессиями и куками в PHP.

Отправка куки на сервер

Предположим у вас уже есть название куки и ее значение. В этом случае ее можно отправить на сервер с помощью опции CURLOPT_COOKIE.

Давайте установим куку с именем name и значением ‘Дима’:

Несколько куки разделяются точкой с запятой с последующим пробелом, например, ‘name=Дима; login=admin’.

Автоматическая запись и получение кук

Уже имеющиеся куки, это хорошо, но бывает очень редко. Чаще всего нам нужно автоматически принимать и отправлять куки. Это делается с помощью двух опций: CURLOPT_COOKIEFILE командует принимать и сохранять куки в файл, а CURLOPT_COOKIEJAR командует отправлять сохраненные куки на сервер:

Параметром эти опции принимают путь к файлу в который будут писаться куки.

Учтите нюанс: автоматическая отправка куки CURLOPT_COOKIEJAR работает только при включенной опции CURLOPT_COOKIEFILE.

Работа с сессией

Зачем нам нужно уметь работать с сессиями через CURL? Затем, что авторизация на сайтах реализуется с помощью сессий. Соответственно, умея работать с сессиями, можно реализовать автоматическую авторизацию и парсить контент, доступный только авторизованному пользователю.

Сессии в PHP работают на основе кук. При старте сессии в куку пишется переменная sessionid, которая будет иметь что-то вроде такого значения 27za9c2lel3tk4zhhm7lmtzt6bbm3atj. Поэтому, для работы сессий всего лишь необходимо получать и отправлять куки на сайт, что мы и разобрали чуть выше.

Автоматическая авторизация

Допустим, вы хотите парсить страницы, доступные только авторизованному пользователю.

В этом случае алгоритм действий такой: первый запрос отправляется на страницу авторизации сразу с POST данными, при этом автоматически сессионные куки пишутся в файл, а все остальные запросы отправляются на страницы, которые вы хотите парсить.

Учтите только, что сессия живет около 20 минут, если не обращаться к сайту. То есть, если после последнего обращения к сайту пройдет больше времени, то нужно авторизовываться заново.

Работа с заголовками

CURLOPT_REFERER //curl_setopt($curl, CURLOPT_USERAGENT, ‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)’);//представляемся CURLOPT_HTTPHEADER Массив устанавливаемых HTTP-заголовков, в формате [‘Content-type: text/plain’, ‘Content-length: 100’]

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Источник

Авторизация на сайте при помощи curl php

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайтеПродолжая цикл статей посвященный парсерам и всем, что с ними связано. В этой статье расскажу про то, как легко можно авторизоваться на любом сайте при помощи библиотеку cUrl php. Для примера я взял один Украинский портал, к которому я собственно и буду подбирать ключики. Для работы нам также понадобится библиотека simple_html_dom

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

На сайте мы видим ничем не примечательную форму авторизации.

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

«Внутренности» у нее тоже ничем не примечательны

Итак смотрим, что форма авторизации отправляет при аутентификации. Для этого возпользуемся Google Chrome, открываем в нем сайт, затем Инструменты->Инструменты разработчика. Далее переходим на вкладку Network. Для браузера Opera Меню->Страница->Средства Разработки->Open Opera DragOnFly и вкладка Сеть. Хоть я и фанат Оперы, но на мой взгляд продукт от компании Google немного удобнее. Я конечно не про браузер =)

Теперь авторизуемся на сайте, смотрим, что посылает форма при сабмите.

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

Видим, что форма посылает следующие параметры

Попробуем решить задачу в лоб и отправить эти данные простым массивом. Сразу учтем, что данные отправляются на защищенный ssl url, по протоколу https. Это следует учитывать при отправке данных в cUrl. Рассказывать, как работает SSL в рамках данной статьи я не стану, скажу лишь, что сертификаты, которыми обмениваются две стороны, сами по себе ничего не говорят о его обладателе. Они нужны лишь для того, чтобы передать открытый ключ, обеих сторон и служат для шифрования канала связи. Т.е. мы можем проверять наличие ssl, и подключать сертификат в cUrl, но это будет служить пользу только нам, сервер не может узнать пользуемся ли мы сертификатом, или используем незащищенный канал связи.

Источник

How to set the authorization header using cURL

How do I pass authorization header using cURL? ( executable in /usr/bin/curl ).

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

11 Answers 11

See part 6. HTTP Authentication

HTTP Authentication is the ability to tell the server your username and password so that it can verify that you’re allowed to do the request you’re doing. The Basic authentication used in HTTP (which is the type curl uses by default) is plain text based, which means it sends username and password only slightly obfuscated, but still fully readable by anyone that sniffs on the network between you and the remote server.

To tell curl to use a user and password for authentication:

Sometimes your HTTP access is only available through the use of a HTTP proxy. This seems to be especially common at various companies. A HTTP proxy may require its own user and password to allow the client to get through to the Internet. To specify those with curl, run something like:

If you use any one these user+password options but leave out the password part, curl will prompt for the password interactively.

Do note that when a program is run, its parameters might be possible to see when listing the running processes of the system. Thus, other users may be able to watch your passwords if you pass them as plain command line options. There are ways to circumvent this.

It is worth noting that while this is how HTTP Authentication works, very many web sites will not use this concept when they provide logins etc. See the Web Login chapter further below for more details on that.

Источник

Как установить заголовок авторизации с помощью curl

Как передать заголовок авторизации с помощью cURL? (исполняемый файл в /usr/bin/curl ).

8 ответов

см. раздел 6. Аутентификация HTTP

аутентификация HTTP-это возможность сообщить серверу свое имя пользователя и пароль, чтобы он мог подтвердить, что вам разрешено выполнять запрос, который вы делающий. Базовая аутентификация, используемая в HTTP (который является типом, используемым curl по умолчанию)простые текст, что означает, что он отправляет имя пользователя и пароль только слегка запутанный, но все еще полностью читаемый любым, кто нюхает сеть между вами и удаленным сервером.

чтобы сказать curl использовать пользователя и пароль для аутентификации:

Иногда ваш HTTP-доступ доступен только через использование HTTP полномочие. Это, по-видимому, особенно распространено в различных компаниях. Прокси HTTP может потребоваться собственный пользователь и пароль, чтобы позволить клиенту интернет. Чтобы указать те, с завитком, запустите что-то вроде:

Если вы используете любой из этих параметров user + password, но оставляете пароль часть, curl запросит пароль в интерактивном режиме.

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

стоит отметить, что пока это так HTTP Аутентификация работает, очень многие веб-сайты не будут использовать эту концепцию, когда они дают логины и т. д. Видеть более подробная информация об этом приведена ниже в разделе веб-входа.

Источник

How do I make a request using HTTP basic authentication with PHP curl?

I’m building a REST web service client in PHP and at the moment I’m using curl to make requests to the service.

How do I use curl to make authenticated (http basic) requests? Do I have to add the headers myself?

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

11 Answers 11

Zend has a REST client and zend_http_client and I’m sure PEAR has some sort of wrapper. But its easy enough to do on your own.

So the entire request might look something like this:

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

CURLOPT_USERPWD basically sends the base64 of the user:password string with http header like below:

So apart from the CURLOPT_USERPWD you can also use the HTTP-Request header option as well like below with other headers:

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

The most simple and native way it’s to use CURL directly.

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

You just need to specify CURLOPT_HTTPAUTH and CURLOPT_USERPWD options:

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

Unlike SOAP, REST isn’t a standardized protocol so it’s a bit difficult to have a «REST Client». However, since most RESTful services use HTTP as their underlying protocol, you should be able to use any HTTP library. In addition to cURL, PHP has these via PEAR:

A sample of how they do HTTP Basic Auth

The also support Digest Auth

If the authorization type is Basic auth and data posted is json then do like this

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

Other way with Basic method is:

php curl авторизация на сайте. Смотреть фото php curl авторизация на сайте. Смотреть картинку php curl авторизация на сайте. Картинка про php curl авторизация на сайте. Фото php curl авторизация на сайте

For those who don’t want to use curl:

Yahoo has a tutorial on making calls to their REST services using PHP:

I have not used it myself, but Yahoo is Yahoo and should guarantee for at least some level of quality. They don’t seem to cover PUT and DELETE requests, though.

Also, the User Contributed Notes to curl_exec() and others contain lots of good information.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *