<?php if($_SERVER['REMOTE_ADDR'] != 'xx.xx.xx.xx') { header("Location: http://google.com"); } ?>
Это хороший способ заблокировать определенные IP-адреса от доступа к некоторым папкам на моем сервере Windows?
Или он может быть перехвачен прокси-программками, такими как webscarab, и исходящий IP-адрес может быть изменен, чтобы обойти это?
Он может обойти любой прокси-сервер с другим IP-адресом, который вы блокируете. Вы можете проверить X-Forwarded-For
( apache_request_headers()
его с помощью apache_request_headers()
если вы используете Apache), но это намного проще обмануть, если вы придаете ему приоритет над $_SERVER['REMOTE_ADDR']
.
Кроме того, я мог бы игнорировать заголовок вашего Location
. Положите также exit
после него.
Если вы хотите только блокировать по IP, вы можете использовать .htaccess для этого – проще установить правило для набора каталогов вместо создания большого количества php-файлов. Но это не хороший метод для пользователей фильтров. Создайте простую регистрационную форму или используйте API из твиттера, facebook или другого.