0

現在、すべてのウェブサイトで洪水対策機能を使用しています。

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をストックし、以前にリクエストを行ったかどうかを確認するdbテーブルでそれを置き換える/完了する必要がありますか?

4

1 に答える 1

0

場合によります。ユーザーがフラッド防止保護を通過するために Cookie を消去する可能性はどのくらいありますか? もう一度ログインしなければならない場合でも、ユーザーの 99% は気にしません。

しかし、確かに、より良い方法が本当に必要な場合は、ipsをDBに保存してください。しかし、それでさえ、新しい IP を取得することで打ち負かすことができます。

于 2010-07-07T22:58:43.210 に答える