Как определить URL веб-сайта, отправляющего сообщение CURL

#php #curl

#php #завиток

Вопрос:

Я играю с созданием очень простого API, в котором внешний веб-сайт отправляет сообщение CURL на мой веб-сайт, и запрос обрабатывается только в том случае, если он поступает с URL-адреса, внесенного в белый список. Не похоже, что какие-либо данные $ _SERVER фиксируют, какой веб-сайт отправил сообщение. Я знаю, что мог бы создать пользовательский код CURL, который выглядел бы примерно так:

curl_setopt($ch, CURLOPT_POSTFIELDS,"url=".$_SERVER['HTTP_HOST']);

Но тогда ничто не помешало бы пользователю просто зайти и изменить его на

curl_setopt($ch, CURLOPT_POSTFIELDS,"url=white-listed-url.com");

Я не женат на CURL, просто показался лучшим вариантом. Откройте в любом случае, что у меня может быть внешний запрос на мой веб-сайт, и я могу получить URL-адрес сайта, отправляющего запрос.

Комментарии:

1. Либо внесите IP-адрес в белый список, либо выполните DNS-запрос к указанному URL-адресу и проверьте, подходит ли ip для запроса

2. Вероятно, вам следует посмотреть на auth с помощью curl, вы можете легко обойти простой белый список IP-адресов, подобный этому

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