Как реализовать возможность обращения к сайту только с определенных доменов? Мне нужно поднять несложный сервер, к которому будут обращаться сайты. Список сайтов известен, нужно только каким-то образом узнавать эти сайты, и если домена нет в списке выдавать ничего.
Первое и единственное, что пришло в голову - узнавать 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
218 +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 Апр в 13:13
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир