Блокировка пользователя по 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('Доступ запрещен.');

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

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

О блоге и авторе

Добро пожаловать на блог веб-разработчика! На протяжении многих лет, начиная с 2009 года, я занимаюсь созданием специализированных сайтов, сервисов и крупных веб-порталов. Мною было создано несколько сотен сайтов, большинство из которых работают на ПО созданном под заказ, а также на готовом ПО которое я разрабатываю на протяжении всего периода моей деятельности. Это: CMS "Совместные покупки", CMS "osRealty", CMS "Спорт прогнозы" и многое другое.

На страницах моего блога вы найдете множество информации о программировании, о появлении новых разработок, сможете ознакомиться с товарами и услугами которые я предоставляю. А также сможете получить консультацию, заказать разработку сайта или приобрести готовое решение, для реализации собственного проекта.

Поиск по блогу
Категории
Архив
Новое на сайте
Блогеры пишут
  • Роман Чернышов: Для работы капчи на PHP 5.6, замените в файле class.captcha.php строку 264 $ifunc( $this -> i [...]
  • Роман Чернышов: Схема такая: 1) На сайте есть виртуальные кошельки (далее ВК) 2) При пополнении пользователем ВК, [...]
  • Александр: Может скрипт комментариев блокирует сообщения с кодом? Или как длинный текст не проходит?
  • Александр: Пытаюсь в который раз здесь показать код, но страница обновляется, и не сообщения, ни любого оповеще [...]
  • Роман Чернышов: Лично у меня интерес к продаже ссылок пропал уже давно. Преимущество сапы, это то - что ссылки можно [...]
Портфолио Все работы


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 сайтов...