cURL работает с http протоколом и позволяет выполнять множество операций, как со своими, так и с чужими сайтами. Например: удаленно выполнить авторизацию, имитировать браузер, сделать парсинг сайта, отправить форму и многое другое.
Чтобы работать с cURL у вас должна быть подключена соответствующая библиотека на
Первым делом надо произвести инициализацию, затем установить параметры (в зависимости от задач), получить результат и освободить память.
Например, получим данные с сайта:
$ch = curl_init(); //инициализация
//параметры соединения
curl_setopt($ch, CURLOPT_URL, "http://сайт.ru");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch); //получаем HTML сайта
echo $output;
curl_close($ch); //освобождаем память
Здесь:
- CURLOPT_URL - сайт, с которого берем данные
- CURLOPT_RETURNTRANSFER - указываем, чтобы нам вернулось содержимое после запроса
- $output - получаем весь контент
Как видите, уже с этим примером можно легко парсить как свои, так и чужие сайты. Но особенность cURL заключается в огромном количестве важных параметров, которые мы можем передавать.
Пример отправки POST данных через cURL
Пусть на сайте-доноре есть php файл msg.php, в котором есть поля формы: name и text. Сам файл служит для отправки сообщений от пользователей админу.
Отправим не заходя на сайт-донор сообщение админу
$ch = curl_init(); //инициализация
curl_setopt($curl, CURLOPT_URL, 'http://сайт.ru/msg.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "name=Алексей&text=Вам бы лучше капчу поставить!");
$out = curl_exec($curl);
echo $out;
curl_close($ch);
Примерно по такому принципу и работают спам-боты. Одни могут авторизовываться и выполнять какие-то действия, другие отправлять сообщения на простых формах, не защищенных капчей.
На заметку - обязательно ставьте защиту от cUrl действий, например в авторизации или отправке сообщений. Во многих случаях спасет обычная капча. Но я также рекомендую создавать невидимое поле на jQuery и в нем передавать какой-нибудь параметр заполненный скриптом. А php обработчике проверять на его наличие. Дело в том, что большинство ботов не умеют работать с jQuery. Это неплохо повысит вашу защиту.
Добавить комментарий