Реклама


Онлайн редактор HTML/CSS/JS кода- (КЛИК). Подробно - (Тут) | Онлайн COLOR PICKER - (КЛИК).
Инструменты для программиста - (КЛИК). | Pastebin - (КЛИК). | Лента - (КЛИК). | BB-коды - (КЛИК).
iCoder.Uz  iCoder.Uz

Показано с 1 по 2 из 2

Тема: Временная блокировка доступа к сайту

  1. ID сообщения 10839 #1
    Профи
    Оффлайн

    Временная блокировка доступа к сайту

    Для работы нашего скрипта временного автобана необходима поддержка хостингом MySQLi.
    В MySQL необходимо будет создать две одинаковые таблицы: all_visits и black_list_ip.
    В all_visits мы будем помещать IP адреса посетителей и время их обращения к страничке.
    В black_list_ip будут храниться забаненные IP адреса и время, когда они были забанены.

    Структура данных таблиц приведена на рисунках ниже:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "IMG" BBкода...

    Таблица all_visits.
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "IMG" BBкода...

    Таблица black_list_ip.
    В обеих таблицах в поле id напротив AUTO_INCREMENT должна стоять галочка! При необходимости в дальнейшем данные таблицы могут быть расширены для хранения дополнительной информации (сколько раз банился конкретный IP и т.д.).

    После того, как оде таблицы в MySQL были созданы, в самое начало Ваших страничек поместите следующий PHP код:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "XCODE" BBкода...

    Данный PHP код, при каждом обращении к страничке, проверяет поисковая система это или нет. Если это не поисковая система, то помещает текущее время и IP адрес в таблицу all_visits.

    Далее проверяется, какое количество обращений к сайту было за последние 10 секунд с данного IP адреса. Если количество обращений больше 10, то IP адрес посетителя помещается в таблицу black_list_ip и перезаписывается файл .htaccess, с уже добавленным только что заблокированным IP адресом, тем самым запрещая ему доступ к сайту.

    Теперь необходимо чистить MySQL базу от ненужных записей и снимать баны с IP адресов через указанные промежутки времени. Для этого поместите следующий PHP код в файл, который необходимо запускать раз в пять минут по CRON-у (или любым другим способом):
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "XCODE" BBкода...

    Таким образом, скрипт позволяет автоматически заблокировать доступ к сайту для тех IP адресов, которые делают более 10 обращений к сайту за 10 секунд. Минусом данного скрипта является то, что в бан могут угодить нужные роботы, HTTP_USER_AGENT которых мы не указали. Стоит учитывать и тот факт, что скрипт дает небольшое увеличение нагрузки на сервер из-за того, что при каждом обращении к страничке в базу записывается время и IP адрес посетителя, после чего идет запрос о количестве обращений за последнее время.

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

  2. ID сообщения 20197 #2
    Новичок
    Оффлайн

    Временная блокировка доступа к сайту

    Спасибо за ответ А по оперативной памяти как быть??

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 26.02.17, 21:09
  2. PHP Блокировка файлов от записи на PHP
    от impuLse #IT в разделе PHP для начинающих
    Ответов: 0
    Последнее сообщение: 26.02.17, 20:54
  3. C# ООП - Модификаторы доступа С#
    от Deimos# в разделе Обучение C#
    Ответов: 0
    Последнее сообщение: 21.02.16, 19:48

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
12+