Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/47: Рейтинг темы: голосов - 47, средняя оценка - 4.98
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28

Проверить от куда пришел cURL запрос

04.12.2018, 17:16. Показов 9767. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня стоит задача: проверить с какого сайта пришел cURL POST запрос. То есть сайт "А" отправляет cURL POST запрос на сайт "B". И мне нужно узнать на сайте "B" от куда был отправлен запрос (домен), не передавая параметров в сам запрос.

Добавлено через 4 минуты
если в cURL запросе мы укажем параметр
PHP
1
curl_setopt ($ch, CURLOPT_REFERER, "http://www.site.com/");
могут туда подставить все что угодно, а нужен истесанный адрес сайта, что бы не было возможности вообще этот параметр редактировать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2018, 17:16
Ответы с готовыми решениями:

С какого сайта пришел post запрос
Всем доброго вечера! необходимо сделать проверку на то, с какого сайта приходит post запрос :) то есть: if(isset($_POST)...

Как узнать, откуда пришел запрос?
Здравствуйте, собственно вопрос в названии темы)))

Узнать подробности о клиенте - куда и откуда пришел
Привет. Пишу счетчик о клиентах и хочу знать имя хоста и страницу откуда они приходят. Как сие узнать? Счетчик банерного типа,...

9
20 / 16 / 4
Регистрация: 01.12.2018
Сообщений: 106
05.12.2018, 11:49
Цитата Сообщение от lebedmityaj Посмотреть сообщение
У меня стоит задача: проверить с какого сайта пришел cURL POST запрос
он может придти и не с сайта.
Цитата Сообщение от lebedmityaj Посмотреть сообщение
что бы не было возможности вообще этот параметр редактировать
вы не можете запретить мне что-то редактировать в моем запросе с моего ноутбука
1
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
05.12.2018, 12:55
lebedmityaj, а если на сайте "B" проверять значение массива $_SERVER['HTTP_REFERER'] ?
0
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
05.12.2018, 13:22  [ТС]
VNIIAEN, Нужно код привязать к домену, а если я буду в курле указывать CURLOPT_REFERER то его спокойно можно подменит. Вот смотри какая ситуация. Купил человек код у меня я ему дал ключ. Да он активировал код но он может к примеру в открытом моем коде просто подставить домен который он активировал и все, и может вообще слить в папблик с доменом и ключем.

$_SERVER['HTTP_REFERER'] - это работать только на клиенте, если запрос из курла то этот параметр вообще отсутствует. Он будет тогда если мы в курле укажем параметр CURLOPT_REFERER - тогда переменная будет существовать.

Вот ребята которые разработали КУРЛ не могли такую маленькую мелочь проработать. Вот как я вижу. Они бы могли просто зашить в отправке запроса, домен сайта или IP адрес от куда идет запрос. То есть если мы отправляем курлом пост запрос то должен также добавиться в запрос переменной пост REFERER. И тогда вообще было бы идеально. Не кто бы не смог подменить REFERER.

Добавлено через 6 минут
он может придти и не с сайта.
вот можно было бы в курл вшить служебную информацию (но создатель КУРЛА это не сделали либо не додумали что такое нужно)

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

Добавлено через 8 минут
PHP
1
2
3
4
5
6
7
8
9
10
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, "http://api.site-b.com/api/{$_GET['mod']}/");
        curl_setopt($curl, CURLOPT_POST, true);
 
        curl_setopt($curl, CURLOPT_REFERER, $_SERVER['SERVER_NAME']); // вот тут я указываю REFERER, но его спокойно можно подменить
 
        curl_setopt($curl, CURLOPT_POSTFIELDS, "key=123456789");
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($curl);
        curl_close($curl);
Вот яркий пример отправки запроса.
И я на сервере получаю массив $_POST и с ним работаю. И не хватает еще служебной информации от куда пришел запрос.

Думаю тут вообще бессмысленно это обсуждать наврятли создатель КУРЛА читает форумы )))
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.12.2018, 13:22
Цитата Сообщение от lebedmityaj Посмотреть сообщение
Вот как я вижу. Они бы могли просто зашить в отправке запроса, домен сайта или IP адрес от куда идет запрос.
curl это http клиент, а http это протокол прикладного уровня (7 уровень в стеке OSI). И он ничего не знает про ip адреса, которые используюься на сетевом уровне (3 уровень).
И еще есть одна "мелочь" - каким образом определить этот самый " домен сайта или IP адрес от куда идет запрос"
И даже если предположить что все эти проблемы удалось каким-либо образом разрешить, то curl не единственный http клиент. И никто мне не может помешать написать собственный и делать произвольные запросы.
1
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
05.12.2018, 13:30  [ТС]
Jewbacabra, стоит задача защитить и продавать свой код, я же пытаюсь найти решение как это сделать максимально защищено. КУРЛОМ пользуются все, все современные API. Мне нужно продать код что бы мой код активировали без головной боли. А не писать еще инструкцию что нужно что бы на ВАШЕМ хостингу был включен или еще хуже загружен мой патч по безопасности ))) Ни один хостинг на это не пойдет (установка какого то неизвестного патча на свои сервера что бы работал мой активационный код)
0
20 / 16 / 4
Регистрация: 01.12.2018
Сообщений: 106
05.12.2018, 13:55
Цитата Сообщение от lebedmityaj Посмотреть сообщение
КУРЛОМ пользуются все
вы уже ответили на свой вопрос. Скорее всего в вашем подходе к безопасности закралась ошибка
0
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
05.12.2018, 13:58  [ТС]
вы уже ответили на свой вопрос. Скорее всего в вашем подходе к безопасности закралась ошибка
Как бы вы реализовали привязку кода к домену?
0
20 / 16 / 4
Регистрация: 01.12.2018
Сообщений: 106
05.12.2018, 14:07
никак. потому что не нужно. еще раз: не нужно! платно можно за дорого, но не окупится в ближайшие 150 лет.
0
98 / 64 / 36
Регистрация: 04.12.2018
Сообщений: 158
05.12.2018, 14:18
Цитата Сообщение от lebedmityaj Посмотреть сообщение
Вот ребята которые разработали КУРЛ не могли такую маленькую мелочь проработать.
Эти ребята всё проработали как надо, и при этом выложили в общий доступ под открытой лицензией.

Для защиты php-кода есть способы, типа компиляции в байт-код или запутывания, но как это клиенту запускать на своём хостинге - отдельный вопрос.

Если есть уникальный очень ценный php-код - не надо отдавать его никому, надо делать сервис с АПИ и авторизацией по ключу и продавать доступ к АПИ.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2018, 14:18
Помогаю со студенческими работами здесь

Java Server-Client. Сервер должен сохранять время запроса, сам запрос(сообщение) и IP, с которого пришел запрос в CSV файл
Работал на одном компе, так что адрес локальный. Проблема в том, что мой CSV файл пустой. Java только начал изучать, так что если честно...

Получить домен сайта с которого пришел запрос
Собственно нужно получить домен сайта с которого пришел запрос за статикой. Просто реферер не подойдет, так-как он содержит путь к...

Переход на web страницу, с которой пришел запрос
перехожу из одной страницы на другую с помощью метода redirect Response.Redirect("string.aspx"). Сразу походу вопрос - если нужно...

Как узнать откуда пришел запрос к функции?
Kak uznati otkuda prisol zapros Command1 ili Command2 pri obrashenie k Function ??? S peremenimi leni mi je vzroslie liudi =)

Узнать тип браузера, с которого пришел запрос.
Как в jsp или в servlet узнать тип браузера от кторого пришел запрос?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. fontSize": 18, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations":. . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru