[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита от F5
DeeKeiD
Вобщем задался целью сделать свою защиту от F5,но она почему-то не работает...
Принцип работы:
1. Форма ( ф-я - test(false); ) запись в сессию времени
2. Обработчик - ( ф-я - test(true); ) запись в сессию времени и проверка разницы в секундах
Функция:

function test($var)
{
if($var = true)
{
if(!isset($_SESSION['form_submit_start_time']))
{
session_start();
$_SESSION['form_submit_start_time'] = time();
}
else
{
session_start();
$_SESION['form_submit_end_time'] = time();
if($_SESSION['form_submit_end_time'] - $_SESSION['form_submit_start_time'] < 5)
{
header( 'Location: '.$_SERVER['HTTP_REFERER'] );
}
}
}

else
{
unset($_SESSION['form_submit_end_time']);
unset($_SESSION['form_submit_start_time']);
}
}





Спустя 57 минут, 11 секунд (28.07.2011 - 02:55) DeeKeiD написал(а):
Написал новую ф-ю, используется 1 раз в обработчике в виде

if(post_antiflood())
{
// Ошибка
}
else
{
// Выполняем код
}


Свернутый текст


function post_antiflood()
{
session_start();
for ($i = 0; $i <= 1; $i++)
{
echo $i;
}
if(!isset($_SESSION['form_submit_time']))
{
$_SESSION['form_submit_time'] = time();
}
$start_time = $_SESSION['form_submit_time'];
if($start_time < time(5))
{
$_SESSION['form_submit_time'] = time();
}
$result = time() - $start_time;
if($result < 5)
{
return true;
}
else
{
unset($_SESSION['form_submit_time']);
return false;
}
}



Что можно улучшить,изменить? и вобще как вам такое решение проблемы? :huh:

// UPD хотя эта тоже криво работает :(

Спустя 4 часа, 28 минут, 9 секунд (28.07.2011 - 07:23) Семён написал(а):
Что можно улучшить,изменить? и вобще как вам такое решение проблемы? :huh:


Решение на уровне школы Попова.
Что улучшить? - Хостинг с защитой от AntiDDoS

Спустя 2 часа, 11 минут, 28 секунд (28.07.2011 - 09:35) DeeKeiD написал(а):
Цитата (Семён @ 28.07.2011 - 04:23)
Решение на уровне школы Попова.

Всё настолько плохо :huh:

После нескольких часов тщетных попыток написать логику, и поисков в интернете, остановится на таком варрианте:


function post_antiflood()
{
session_start();
if($_SESSION["date"]>mktime()-10)
{
return true;
}
else $_SESSION["date"]=mktime();
}



if(isset($_POST['test']))
{
if(post_antiflood())
{
// Ошибка
}
else
{
// Выполнение кода
}
}


Спустя 23 минуты, 43 секунды (28.07.2011 - 09:58) Семён написал(а):
Поверь тебе это не поможет. )

Спустя 9 минут, 8 секунд (28.07.2011 - 10:08) VELIK505 написал(а):
Я раньше пытался делать такие темы. Всякие сверки запросов урезание кол-ва запросов в минуту на 1 айпи и тд. И в итоге пришёл к выводу что всё это фуфел. Кому надо тот тебя и без этого заддосит. Трафик должен фильтроваться со стороны сервера а не скрипта.

Спустя 17 минут, 32 секунды (28.07.2011 - 10:25) DeeKeiD написал(а):
Это не для защиты от ддоса, это для защиты от криворуких пользователей.

// оффтоп, кто подскажет как организовать базу для модуля друзья?

Спустя 2 часа, 7 минут, 3 секунды (28.07.2011 - 12:32) killer8080 написал(а):
Цитата (DeeKeiD @ 28.07.2011 - 10:25)
Это не для защиты от ддоса, это для защиты от криворуких пользователей.

для защиты от F5, достаточно просто делать редирект после успешного занесения в базу.


_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.