- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Интересный случай на локалке.
Берём простой код CURL:
<?
function curl_gets($url){
$headers[]='Accept:';
$headers[]='Connection: Close';
$headers[]='Host: market.yandex.ru';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
echo curl_gets('https://market.yandex.ru/product--smartfon-xiaomi-mi-10-8-128gb-android-one/654293021?track=tabs');
Этот код выдаёт 403 Доступ к нашему сервису временно запрещён! В тот же момент, если подключаемся через сокеты, то всё нормально:
<?php
$fp = fsockopen("ssl://market.yandex.ru", 443, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /product--smartfon-xiaomi-mi-10-8-128gb-android-one/654293021?track=tabs HTTP/1.1\r\n";
$out .= "Host: market.yandex.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
Никаких ошибок нет, Яндекс показывает страницу. Ок! Берём file_get_contents
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
echo file_get_contents(' https://market.yandex.ru/product--smartfon-xiaomi-mi-10-8-128gb-android-one/654293021?track=tabs ', false, stream_context_create($arrContextOptions));
Тоже никаких проблем, но уже запрашивает каптчу.
Но НИГДЕ кроме CURL не выдаёт 403 ошибку. Я проверил передаваемые заголовки, они одинаковы, что на CURL, что на сокетах, что на file_get_contents. Что я упускаю?
p.s. не надо только писать про добавление куков, юзерагента и т.д.
Меняю версию на PHP 5.6 страница открывается без проблем.
Перевожу на PHP 7.4 403 ошибка.
Это что за нафиг? :)
Короче:
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_MAX_TLSv1_2);
И будет вам счастье. С какого перепуга Яндекс банит tslv1.3 только одним сисадминам известно.