Заметки интернет-разработчика

Сколько пользуюсь виртуальным выделенным сервером, есть необходимость ограничить выкачивание сайтов всякими умельцами, ибо это напрягает сервер. Отчасти эта проблема решается блокировкой известных User-Agent при помощи htaccess. Вот список некоторых из них. Но это защита только от новичков, поскольку большинство программ для скачивания сайта позволяют настроить поле User-Agent подстроившись под обычный браузер.

Другой способ который меня вполне устраивал - блокировка ip адресов стран, кроме стран СНГ при помощи файервола. Средние потери посетителей не превышали 3% и происходили потому что некоторые пользователи выходят в интернет через спутник, gpr с иностранными ip адресами и погрешности самой базы. Спутники в меньшей степени, тк для отправки данных от клиента на сервер используются наземные каналы или тот же gprs. Но при добавлении на сервер проекта, где потери посетителей недопустимы, пришлось отказаться от данного способа и искать другое решение.

Таким решением стал модуль написаный на php для блокировки ip обращающегося к сайту более X хитов за час, после чего пользователю показывается капча при вводе которой счетчик хитов сбрасывается. Если пользователь не обращает внимания на капчу, продолжая посылать запросы на сайт достигая Y хитов, доступ пользователя к сайту блокируется. Значения X и Y можно настроить, также можно включить уведомление администратору по каждому случаю блокировки. Для хранения кол-ва хитов используется оперативная память, чтоб максимально быстро считать запросы. Для тех у кого есть возможность неплохо было бы интегрировать данный скрипт с файерволом, но это уже решается в каждом случае индивидуально. В будущем напишу как у себя сделал.


Установка. В файле access.php есть настройки с комментариями, думаю вопросов не возникнет. Нужно установить права на файл куда будут сохраняться заблокированые ip, также он содержит список разрешенных ip (поисковые роботы). По-умолчанию это файл .htallow. В апаче есть настройка которая не пропускает запросы на файлы начинающиеся с .ht, так что дополнительно закрывать на него доступ не надо. При прямом запросе файла access.php выводится форма авторизации. После успешной авторизации вы можете посмотреть список активных ip адресов и отредактировать файл .htallow. Предложения по админке принимаются, сделал минималоно необходимое для меня, в будущем возможно буду что-то добавлять. Стоит отметить что капча в папке /captcha/ также использует опретивню память для сохранения текста на картинке.


Скачать с использованием eaccelerator на сервере

Скачать универсальный вариант использующий PEAR класс System/SharedMemory

Комментарии (3) »

  1. Zamin, 2008-10-18 @ 15:21

    Zdravstvuyte!

    Ya xocu uznat mojno li postavit kakie to oqranicenii po saytam doma na 1-om komputere.Esli mojno kak?

    Spasibo zaranee!

  2. Михаил, 2008-11-02 @ 11:30

    Если блокировать по IP то тогда есть возможность что нужные боты поисковых машин не смогут пробиться на сайт. Если конечно Ваш сайт не используется узким кругом лиц и не нуждается в индексации.

  3. yakodzun, 2008-11-02 @ 21:57

    Список ip ботов поисковых машин прилагается и находится в блоке разрешенных ip. Так что с этим проблем не возникнет.

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

Комментарии модерируются

Имя: (Обязательно)

E-mail: (Обязательно)

URL:

Comment:

Page generated in 0.0351 seconds with 11 queries (0.0262 seconds of sql)