Анти-флуд: сессия или дб чулок ips - PullRequest
0 голосов
/ 08 июля 2010

сейчас я использую функцию защиты от наводнений на всех моих сайтах:

function flood($name,$time)
{
 $name = 'tmptmptmp'.$name;
 if(!isset($_SESSION[$name]))
 {
  $_SESSION[$name] = time();
  return true;
 }
 else
 {
  if(time()-$time > $_SESSION[$name])
  {
   $_SESSION[$name] = time();
   return true;
  }
  else
  {
   return false;
  }
 }
}

Я использую это так:

if(flood('post',60)) do something;
else 'you're posting too fast';

Это безопасно? Или мне нужно заменить его / дополнить его таблицей базы данных, содержащей ips и проверяя, не сделали ли они запрос раньше?

1 Ответ

0 голосов
/ 08 июля 2010

Это зависит. Насколько вероятно, что ваши пользователи собираются очистить свои куки, чтобы пройти защиту от наводнений? Я скажу, что если им придется войти снова, 99% пользователей даже не будут беспокоиться.

Но, конечно, если вы действительно хотите лучший способ, храните ips в БД. Но даже это можно победить, получив новый IP.

...