06. februar 2006 - 23:56Der er
9 kommentarer og 1 løsning
retunere fejl hvis der er ikke er gaaet 5 sec.
Hej eksperter,
Jeg er ikke saerlig god til tidsbehandling med PHP, saa jeg soeger lige lidt hjaelp. jeg sidder og arbejder paa et login system, og jeg vil gerne stoppe bruteforce programmer, ved at melde fejl hvis der ikke er gaaet 5 sec imellem det sidste login, og det nye.
AI skal væves ind i kultur og processer for at skabe reel forretningsværdi
Slettet bruger
07. februar 2006 - 07:23#1
Du kan lave en tabel i en database "logins", hvor du smider "brugernavn" og "tid". Når en bruger logger ind, tjekker du, om tid er "gammel" nok, hvorefter du herpå kan konkludere, om han kan logge ind eller skal smides væk :)
Når en bruger (med et korrekt brugernavn) forsøger at logge på gør du følgende :
Checker om der er gået 5 sec. siden sidste login.
$res=mysql_query("SELECT * FROM users WHERE user='".$_POST['user']."' AND logtid<".(time()-5000)); if(mysql_num_rows($res)==1) { mysql_query("UPDATE users SET logtid='".time()."' WHERE user='".$_POST['user']."'"); } else { ..der er ingen rækker i query'en så enten er det et ugyldigt brugernavn eller der er ikke gået 5 sekunder siden sidste login forsøg.. }
Ovenstående er teorikode, ikke testet, så der mangler måske nogle tegn hist og pist.
Husk også altid at validerer udefrakommende input.
johan.o > kan det deles op, saa det bliver meldt to forskaellige fejl? en der beskriver at der ikke er gaaet 5 sek. og en der beskriver at der er et forkert login.
$res=mysql_query("SELECT * FROM users WHERE user='".$_POST['user']."'"); if(mysql_num_rows($res)==1) { $row=mysql_fetch_assoc($res); if($row['logtid']<(time()-5000)) { ..alt er i orden.. } else { ..der er ikke gået 5 sekunder.. } else { ..ugyldigt brugernavn.. }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.