Может ли сервер блокировать запросы с моего сайта?

Есть веб-сайт, размещенный на сервере (A), который отправляет запрос HttpRequest через php на другой веб-сайт, размещенный на другом сервере (B).

Каждый раз, когда пользователь нажимает кнопку на домашней странице веб-сайта, расположенного на A, A делает запрос на получение html-страницы B.

Может ли B заблокировать эти запросы от A?

0

Решение

Краткий ответ: да, это возможно.
Длинный ответ: это не практично. Хотя вы можете заблокировать IP-адрес сервера, но если владелец сервера действительно хочет это сделать, он / она может просто получить бесплатный прокси-сервер и затем отправить запрос, вы никогда не сможете определить, отправлен ли запрос с сервера A или действительный пользователь.

1

Другие решения

Простой ответ — да.

Есть несколько способов сделать это, начиная от блокировки вашего конкретного IP-адреса до блокировки запроса с определенными заголовками (или даже с отсутствующими заголовками).

Обычный метод не позволяет хотлинкинг, который обычно проверяет, существует ли заголовок реферера и соответствует ли он их собственному сайту.

1

Да. Есть много способов сделать это, как через PHP, так и через брандмауэр.

Например, вы можете поместить в верхней части вашего файла PHP на B

if( $_SERVER['REMOTE_ADDR'] == "whatever-ip-here" ) die();

Другой пример использует Linux / iptables. Это немного сложнее в настройке и будет блокировать все, что происходит от A (в соединениях будет отказано):

iptables -A INPUT -s putipaddresshere -j DROP
0