2010-07-07 19 views
0

現在我用我的所有網站的抗洪功能:防水災:會話或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; 
    } 
} 
} 

我使用這種方式:

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

是這樣安全嗎?或者我需要更換它/使用db表庫存ips來完成它並檢查它們是否提前請求過?

回答

0

這取決於。您的用戶有多大可能會清除Cookie以超越您的防洪保護?我會說,如果他們必須再次登錄,99%的用戶甚至不會打擾。

但是的確,如果您真的想要更好的方法,請將ips存儲在數據庫中。但即便如此,也可以通過獲得新的知識產權來擊敗。