Модуль AntiOverload *FIX*

Тема в разделе "DLE", создана пользователем defosa, 18 апр 2008.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. defosa

    defosa Создатель

    Регистр.:
    8 ноя 2007
    Сообщения:
    30
    Симпатии:
    12
    Случилось мне однажды столкнуться с ситуацией, когда мой хостер предъявил мне претензию о том, что мой акаунт создаёт непомерно большую нагрузку на MySQL-сервер. Посмотрев логи, я заметил, что такую нагрузку создают программы-качалки, которые копируют сайт целиком на локальный компьютер. Во время обращения к странице происходит несколько sql-запросов к базе данных. А если учесть, что эти программы готовы скачивать сразу несколько страниц с сайта, то получается, что в секунду идёт от 3 до 10 запросов. При такой «атаке» серверу действительно приходится не сладко.
    Решением я увидел ограничение доступа к сайту с одного ip-адреса чаще, чем один раз в 2 секунды. Проверка происходит без использования sql-сервера, поэтому идёт достаточно быстро.
    Здесь я предлагаю php-скрипт, реализующий такую проверку.


    Модуль предназначен для ограничения доступа к сайту или к страницам, где он включён.
    Принцип работы в том, что запоминается ip-адрес и время обращения с этого адреса. И если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503.Т.е Если вы нажмёте кнопку обновить 3 раза подарят,вам выдаст это сообщение



    Код:
    Установка:
    *Качаем antiOverload.txt
    *В корне сайта создаем папку tmp и выдаём права 777(Если папка есть,то не чего создовать не надо.)
    *Открываем index.php и перед:
    <?php
    
    Добавляем то что содержит архив antiOverload.txt:
     

    Вложения:

    infant, Janine и merzkiy нравится это.
  2. merzkiy

    merzkiy Постоялец

    Регистр.:
    21 май 2007
    Сообщения:
    70
    Симпатии:
    34
    лучше не копировать всё в index.php
    а создать antioverload.php
    и в index.php
    добавить
    после <?php добавить
    PHP:
    include 'www.site.ru/antioverload.php';
     
  3. topme

    topme Читатель

    Заблокирован
    Регистр.:
    26 окт 2007
    Сообщения:
    121
    Симпатии:
    40
    Полезная штуковина. Я поставил ее к себе и получил результат: нагрузка упала на 6-8%.
     
  4. $aSH

    $aSH

    Регистр.:
    3 ноя 2006
    Сообщения:
    536
    Симпатии:
    233
    было подобное.
    уже обосрали эту херню.
    не тащите всякую какашку сюда
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.401
    Симпатии:
    1.182
    Забавно, хотя и простенько если можно сделай версию 0.2
    скрипта:), в которой будет 2 времени 1е - как часто можно обновлять
    2е - сколько отображать 503 ошибку

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

    так что версия 0.3 если кто возьмется должна позволять открыть кучку страниц, а при привешении какого то предела открытия $n страниц за $t времени показывало бы 503 в течении $b времени при этом при обновлении отображалось время до конца "бана"
     
  6. Barthez

    Barthez

    Регистр.:
    28 мар 2007
    Сообщения:
    265
    Симпатии:
    169
  7. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    зачем 0.3 просто такой де сторонний скриптик

    он в оригнале вроде antiddos зовется

    подключается простым инклюдом

    примерно так :
    Код:
    ...
    define('ENGINE_DIR', ROOT_DIR.'/engine');
    [COLOR="Red"]include("antiddos.php");[/COLOR]
    require_once ROOT_DIR.'/engine/init.php';
    ...
     
    milw0rm и latteo нравится это.
  8. ewg777

    ewg777

    Регистр.:
    6 авг 2007
    Сообщения:
    763
    Симпатии:
    321
    Ы!

    Я вижу вы большой шутник!

    _DIMA_NOFLOOD.PHP, version 1.1, 2002-11-11

    Этот мод 2002 года! Вы думаете это еще актуально? В ТОПКУ!
     
  9. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    я думаю что в нем есть именно то что надо ...

    возможность контролировать время блокировки ...
    выставлять несколько условий ...

    работает отлично и не вижу ничего ужасного в дате написания
     
  10. Janine

    Janine

    Регистр.:
    17 дек 2007
    Сообщения:
    340
    Симпатии:
    96
    А нельзя ли реализовать как на показухе:
    [​IMG]
    И, таким образом, и не отпугивать посетителей, и регулировать нагрузку.
     
Статус темы:
Закрыта.