User sperren

Moin moin,
Betreff Webanwendung/ php

nach einer Anzahl von fehlerhaften Loginversuchen, möchte ich den Zugnag für einen Benutzer 30 Minuten sperren.
Momentan logge ich die IP in einer tabelle und sperre diese.
Ich weis das wenn der Router aus und dann wieder an geschaltete wird ist der gleiche nutzer mit einer anderen IP wieder da und hat auch wieder seinen Zugang. Mmmh...

Eigentlich nur eine Abschreckung im Sinne des eventuellen zeitlichen Aufwendungsfaktors.

Wie sollte man so eine Geschichte Sinnvoller Lösen? Hat jemand einen Tipp?
 
Es gibt im Web keine Möglichkeit einen Benutzer zu 100% wiederzuerkennen. Das Problem liegt darin, dass es durch die Implementation des HTML-Protokolls einem Benutzer möglich ist, alle für seine Kennung relevanten Daten von Hand anzupassen. (Mal abgesehen von der IP, die, wie du bereits korrekterweise andeutetest, auch nicht persistent ist.)

Von daher ist ein solcher Schutz auch nicht zu 100% sicher. Ich kann dir aber sagen, dass ich persönlich schnell aufgeben würde, wenn ich ständig meinen Router neu starten müsste :)

(Ich hatte einmal eine sehr interessante Arbeit über einen Ansatz, einen Benutzer anhand seiner Daten statistisch wiederzuerkennen, den find ich allerdings gerade nicht. Ich liefere ihn nach, sollte sich das ändern.)
 
Was du noch machen könntest wäre ein Cookie oder, da dieser sich sehr einfach löschen lässt ein Flash cookie, da dieser sich etwas komplizierter löschen lässt.
Ich würde es aber dennoch auch bei einer IP-Sperre belassen, wie der Vorposter schon meinte
 
Vllt. nicht für jede Anwendung empfehlenswert, aber ich lasse z.B. ab x Fehlversuchen für den Login mit einem Namen (IP egal) den Login für den User (nicht den User-Account) für eine gewisse Zeit sperren (um Bruteforcing von verschiedenen Stellen aus zu vermeiden).

lG
 
noch eine Idee: WENN man Herr über den Server ist, der Server ein unixoides Betriebssystem ist und z.B. zur Abwehr von Bruteforce-Angriffen per SSH sowieso schon fail2ban einsetzt, könnte man bei den Login-Fehlversuchen den Nutzer auf eine bestimmte Seite weiterleiten und im fail2ban könnte man direkt eine Regel aufstellen, dass die access.log vom Apache geparst wird und wenn eine IP zu oft auf dieser Seite gelandet ist, wird die IP direkt über die Firewall für mehrere Minuten geblockt - das erspart dann auf jeden Fall Server-Last, da nicht ständig PHP und MySQL erst angeschmissen werden muss, um herauszufinden, dass die IP gerade keinen Zugriff hat und der Nutzer wird wesentlich besser abgeschreckt, wenn er nach einigen Fehlversuchen gar nicht mehr auf den Server kommt...
natürlich könnte man vorher eine Warnmeldung bringen "noch X Versuche, bis du komplett vom Server gesperrt wirst - wenn es wirklich dein Account ist und du das Passwort vergessen hast, dann nutze die 'Passwort vergessen'-Funktion oder setze dich mit dem Admin in Verbindung"
 
Wie Brabax schon sagte ist die einzig vernünftige Möglichkeit, den betreffenden Account N-Minuten zu sperren. Das realisierst du zb recht isi in dem du fuer alle Logins einen tmporaeren Eintrag in einer table machst, der dort 10 Minuten lebt. Sind schon 3 Eintraege drin, ist ein Login nicht möglich.
 
Zurück
Oben