Нужна помощь с защитой от DOS/DDOS

448
.
Вот пишу CMS, и ща дошло дело до безопасности.
И нужно ваше мнение на этот счет.
Защита от флуда такая:
function antiflood($range) {
        //Устанавливаем last_hot_link счетчик
        $_SESSION['last_hot_link'] = $_SESSION['last_hot_link'] ? $_SESSION['last_hot_link'] : 0;
        //Устанавливаем hot_link счетчик
        $_SESSION['hot_link'] = $_SESSION['hot_link'] ? $_SESSION['hot_link'] : 0;
        //Время последнего перехода
        $_SESSION['time_stamp'] = !$_SESSION['time_stamp'] ? microtime(1) : $_SESSION['time_stamp'];
        if (($_SESSION['time_stamp']+$range) > microtime(1)) {
            //Количество хотлинков (переходов с узким промежутком времени)
            $_SESSION['hot_link'] = $_SESSION['hot_link'] ? ($_SESSION['hot_link']+1) : 1;
            //Последний хотлинк
            $_SESSION['last_hot_link'] = microtime(1);
            //Обновляем штамп времени
            $_SESSION['time_stamp'] = time();
        } else {
            //Последний хотлинк - обнуляем
            $_SESSION['hot_link'] = ($_SESSION['last_hot_link']+120) < microtime(1) ? 0 : $_SESSION['hot_link'];
            //Обновляем штамп времени
            $_SESSION['time_stamp'] = time();
        }
        if ($_SESSION['hot_link'] > 30) {
            //Постоянно обновляем хотлинки
            $_SESSION['last_hot_link'] = microtime(1);
            //Перенаправляем на статическую страницу
            reUrl('/flood/');
        }

$range - если время перезагрузки страниц или перехода по ним меньше этого, то переход считается флудом.

И в случае если накапало более 30 хотлинков, пользователь перенаправляется через правило .htaccess -
RewriteRule ^flood/$ /antidos.htm [R=301,L]
где antidos.htm - статическая страничка не несущая нагрузки.

Также если установлен mod_evasive на сервере, он тоже подключен в .htaccess
И если mod_evasive подключен, дос/ддос длится максимум 10 минут (от интенсивности зависит), а потом Service Unavailible.
.
Кто-то может прокомментировать данный пост?
.
(\/)____o_O____(\/)
постоянно перезаписываются файлы сессии. хотя с нормальным шагом будет не так страшно
.
Koenig (29.05.2012/22:22)
постоянно перезаписываются файлы сессии. хотя с нормальным шагом будет не так страшно
Ща уже немного переделал. Шаг в 30 секунд если идет процесс флуда. Если нет, то сессии вообще без изменений.
То есть:
Если флудер флудит, система определяет этот процесс, и записывает в сессии.
Ну а если нет, сессии не изменяются. + если система подозревает что пользователь флудит, выводится предупреждение, о том что нужно реже перезагружать страницы.
Также флудом является 5 раз не правильно введенные данные при авторизации, и тоже выдается бан.
.
Ну а если пользователь игнорит предупреждение - бан ему в руки.
.
и помогает?
.
не думаю что использование сессий хорошая идея от dos. я бы даже сказал что совсем никакая
.
Kpegumop, почему?
.
Tadochi, я особо не специалист, но были прециденты, когда папку сессиями забивало у меня. чиститься не успевала
.
А размаз не Можно было становить время чистки папки меньше? Например раз в 15 сек.? Да и переадресацию можно было бы сделать на какой нить сайт другой например на том же венике.
Всего: 15