2010-07-07 4 views
0

en ce moment je suis en utilisant une fonction anti-inondation dans tous mes sites:inondation Anti session ou le stockage db ips

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; 
    } 
} 
} 

Je l'utilise de cette façon:

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

Est-ce de manière sûre? Ou ai-je besoin de le remplacer/compléter avec une table db stockant ips et vérifiant s'ils ont fait une demande plus tôt?

Répondre

0

Cela dépend. Quelle est la probabilité que vos utilisateurs vont effacer leurs cookies pour passer votre protection anti-inondation? Je dirai que s'ils doivent se reconnecter, 99% des utilisateurs ne prendront même pas la peine.

Mais, bien sûr, si vous voulez vraiment une meilleure méthode, stockez les ips dans la base de données. Mais même cela peut être vaincu en obtenant une nouvelle adresse IP.