Посоветуйте анти Ddos скритп ? Http Flood

Discussion in 'PHP' started by Adio, 23 Jan 2010.

  1. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Вообщем какие то казлы начинают парсить мой сайт выдирать мэйлы . Но как там их мало - они все равено парся мои 80 тыс страниц. Сайт иногда падает из за того что эти уроды из компов 5 точно парсят.
    Так вот я на одном сайте видел такую штуку когда парсишь то тебя блокирует сайт по ип т.е по определенному количесву запросом типа анти http flood Что посоветуйте такое не сильно сложено просто что бы этих дураков банить ???
     
  2. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Попробуй BASIC авторизацию.
    где надо будет ввести рандомно сгенерированый пароль.
    Любую "антиддос" говносистему можно обойти.
    Буть то сессии или куки.
     
  3. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Нет мне нужно что бы было так как есть только при большом количесве запросов с ип блокировался юзер ! я же не могу все время сидеть и палить ИП атакуюищих и все время блочить мануально. Я хочу что бы скрипт определял ип и если с этого ип больше 20 запросов в сек то блочит типа такого
     
  4. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Какие проблемы?
    Вот скрипт, с реализацией помог Gifts:
    PHP:
    function make_mask($ip)
    {
        
    $ip trim($ip);
        
    $out_ip preg_replace('/\*+/i','0',$ip);
        
    $mask preg_replace(array('/\d+/''/\*+/'), array('255','0'), $ip);
        return array(
    $out_ip,$mask);
    }
    function 
    check_ip($needle$haystack)
    {
        
    $tmp make_mask($haystack);
        return ((
    ip2long($needle) & ip2long($tmp[1])) == ip2long($tmp[0]));
    }
    Использование: check_ip($_SERVER['REMOTE_ADDR'], "С кем нужно сверить");
    Нужно просто создать файл с масками IP адресов с которых идёт доступ к сайту, например 127.0.0.*

    Теперь все IP ( 127.0.0.0-255 ) будут блокироваться
     
  5. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Негодиться ! Так как я должен сам палить кто атакует !!! Я же выше написал...
     
  6. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    Имхо здесь нужен не PHP, а детальная настройка веб-сервера.
     
  7. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Ну ну... я видел скрипт когда то но не помню как называеться - так вот он блокирует тебя если ты перезагрузишь раз 20 страницу - потом вылазит страница твой ИП заблокирвоан !
     
  8. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    568
    Likes Received:
    86
    Reputations:
    11
    /showpost.php?p=1699109&postcount=3
    /showpost.php?p=1725619&postcount=4

    у меня стоит 1 из них. Работает на ура.
     
  9. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Записывать в базу все обращения к сайту, и если число обращений с одного IP превышает например 40 запросов в минуту, то создавать правило в ipfw, deny на этот ip. Или, что там у вас.
     
    #9 Solker, 23 Jan 2010
    Last edited: 23 Jan 2010
  10. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    1-й скрипт не блокирует поисковых ботов, а значит в парсере можно указать ЮзерАгент любого поискового бота и вся система идет лесом.

    В добавок если я правильно понял то у ТС парсят контент, а причем тут блокировка если сраницу много раз обновили, парсер при первом посещении украдет все что ему нужно. Если у него парсеры по всему сайту ищут, тут нужно блокировать доступ по Хитам в минуту к примеру, человек за минуту не в состоянии прочитать более 10 страниц, а парсер может и 100 спарсить. Либо блокировать по общему кол-ву хостов, к примеру в день разрешено просмотреть 100 страниц. Но все ето фигня, т.к. прокси можно прикрутить к парсеру.

    Может стоит переехать на более мощное железо раз у тебя от 5 посетителей (парсеров, это неважно, фактически тот же посетитель.) падает сервер.
     
    _________________________