Как реализовать возможность обращения к сайту только с определенных доменов? Мне нужно поднять несложный сервер, к которому будут обращаться сайты. Список сайтов известен, нужно только каким-то образом узнавать эти сайты, и если домена нет в списке выдавать ничего.
Первое и единственное, что пришло в голову - узнавать ip ($_SERVER['REMOTE_ADDR']), потом получать хостнэйм (gethostbyaddr(ip)) и искать его в списке. Будет ли это работать как должно?
P.s. Естественно, перед написанием вопроса я решил затестить. Сделал 2 сайта на вебхосте. На одном пишу в файлик все подключающиеся айпи и хостнеймы, а на другом сURL'ом делаю запрос на первый. В итоге в файлике лежит это - 2a02:4780:bad:19:fced:1ff:fe19:2 : 2a02:4780:bad:19:fced:1ff:fe19:2 (???)

21 Авг 2019 в 06:45
238 +1
0
Ответы
1

Для реализации ограничения доступа к вашему серверу только по определенным доменам, вы можете использовать следующий подход:

Создайте файл с разрешенными доменами, например domains.txt, в котором будет список доменов, к которым вы хотите разрешить доступ к вашему серверу.

В вашем скрипте PHP, который обрабатывает запросы к серверу, добавьте следующий код перед выполнением основной логики:

$allowed_domains = file('domains.txt', FILE_IGNORE_NEW_LINES);
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if (!in_array($host, $allowed_domains)) {
// Если хост не найден в списке разрешенных доменов, завершаем скрипт
exit('Доступ запрещен');
}

Этот код будет проверять хост, откуда пришел запрос к вашему серверу, на то, есть ли он в списке разрешенных доменов. Если хост не найден в списке, скрипт завершится и выведет сообщение об отказе в доступе.

Этот подход будет работать, если домены, к которым вы хотите ограничить доступ, имеют уникальные идентификаторы. Однако, учтите, что функция gethostbyaddr() может быть не совсем надежной, так как она зависит от DNS-конфигурации и может возвратить неправильные данные в некоторых случаях. Возможно, стоит также рассмотреть использование других способов идентификации домена, например, по заголовкам запроса.

20 Апр 2024 в 13:13
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир