Блокировка пользователя по IP

Author Роман Чернышов    Category Без рубрики     Tags Комментариев 0 Дата 9 Сен

ipblock Блокировка пользователя по IPНебольшой пост-заметка о паре способов блокировки пользователя по IP, например несчастного «спамера» или «доссера». Иногда спамеры, а точнее боты(автоматические системы, скрипты рассылки нежелательных сообщений) публикующие объявления в комментариях блогов, могут нагружать своими частыми запросами сервер так, что ваш сайт просто не будет открываться. Вроде и не DDOS вовсе, а нагрузка идет ощутимая. Перейдем к примерам:

1. Запрет по IP с использованием файла .htaccess (что лежит в корне сайта, если его нет то создать), для этого нужно прописать в самом файле следующие строки:

order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
allow from all

После чего пользователь или еще кто либо с IP адресом 123.45.6.7 будет заблокирован и более не получит доступа к вашему сайту. Также можно блокировать целую подсеть IP адресов 012.34.5. в этом примере мы не пишем последнее число, тем самым отсекаем доступ для диапазона 012.34.5.0 — 012.34.5.255

Преимущество данного способа в том, что пользовательский запрос отсекается еще перед началом выполнения скриптов на вашем сервере, самим Apache, тем самым не нагружая ваш сервер(хостинг, сайт).

2. Второй вариант, ограничение доступа по средствам PHP. В этом случае Apache пропускает пользователя на сайт и обрабатывает его запрос, далее скрипт при выполнении определяет его IP и выводит сообщение о запрете доступа.

if($_SERVER['HTTP_X_REAL_IP']=='123.0.1.2') die('Доступ запрещен.');

Запрета доступа для целой подсети

if(strpos($_SERVER['HTTP_X_REAL_IP'],'123.0.1.')) die('Доступ запрещен.');

Пример с логированием. Пишем в файл все неудачные попытки доступа (Время, IP, URL).

$fp = fopen('ipaccess.txt', 'a+');
fwrite($fp, date('d.m.Y H:i:s')." {$_SERVER['HTTP_X_REAL_IP']}  {$_SERVER['REQUEST_URI']}\n");
if(strpos($_SERVER['HTTP_X_REAL_IP'],'123.0.1.')) die('Доступ запрещен.');

Думаю эта заметка будет полезна вам, если что-то непонятно или есть чем дополнить милости прошу в комментарии.

Оставить комментарий

Консультации

Консультант Чернышов Р.В. Зайдайте вопрос на любую из тем:
Бесплатно и без регистрации!

Задать вопрос
Все вопросы
Последние вопросы
Поиск по блогу
Категории
Архив
Новое на сайте
Портфолио Все работы


www.detskiy-mir.net
www.detskydoctor.ru
www.betelit.ru
www.all-alliance.ru
www.videogonok.ru
www.carpfishing.by
www.property-greek.com
www.domcons.ru

с 2009 года по сегодняшний день, создано более 300 сайтов...