Angriff durch Brutforce verhindern
Mario
- php
Hallo.
Ich möchte einen Paßwortgeschützten Bereich auf meiner HP einrichten. Das PWD Skript ist kein Problem. Einzig und allein eins macht mir Sorgen: Dieses Skript könnte man per Brutforce knacken. Wie kann ich mein Skript modifizieren, daß dies nicht mehr geht. Eine Möglichkeit wäre ja die IP mit nem Zeitstempel in ner Datei zu speichern, dann abgleichen und bei zu vielen Zugriffen in einer bestimmten Zeit das System dicht zu machen. Gibt es andere Alternativen, die ggf. einfacher zu programmieren sind bzw. weiß jemand, ob es dazu ähnliche Skripte gibt? Eine Suche meinerseits war bisher noch nicht sehr erfolgreich.
Gruß, Mario.
Hallo,
die einfachste Lösung heißt
sleep(2);
und genügend lange Loginnamen und Passworte
Kannst ja mal ausrechnen, wei lange es dauert, (26+26+10+x)^8 Möglichkeiten durchzuprobieren. Wenn der Anmeldename nicht mit dem Usernamen übereinstimmt und ebenfalls wie ein Passwort behandelt wird (Länge, Zeichen, Nichtanzeige) dann sind es ja sogar noch viel mehr Möglichkeiten, sodass ich die Gaussche Verteilung und social Engeneering für die Treffer mal vernachlässige.
Ich hatte am Anfabg für die User einen Zähler drin, der die Fehlversuche pro Anmledenamen gezählt hat. Leider gibt es dann immer Ärger mit den Usern, wenn irgendwelche Spaßvögel ihren Account durch bewusste Fehlversuche mal wieder gesperrt haben.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Mario,
Einzig und allein eins macht mir Sorgen: Dieses Skript könnte man per Brutforce knacken. Wie kann ich mein Skript modifizieren, daß dies nicht mehr geht.
naja, wenn jemand Dein Skript mit 2.4*10^24 Anfragen befeuert, dann dürfte es eher eine Denial of Service Attacke werden als eine Brute Force. Der Webserver würde IMHO so viele Anfragen gar nicht verkraften und in die Knie gehen, bevor das Passwort geknackt ist.
Ich glaube nicht, daß man über HTTP eine Brute Force machen kann. Aber um ganz sicher zu gehen, wäre die Idee mit dem IP-Cache samt Zeitstempel meiner Meinung nach die Beste.
viele Grüße
Achim Schrepfer
Huhu Mario
Du könntest zu jeder Benutzerkennung einen Status "aktiv/ nicht aktiv"
speichern. Weiterhin zu jedem Benutzernamen die Anzahl der fehlerhaften
Login-Versuche.
Wenn die Fehler einen bestimmten Wert überschreiten (z.B. 3 oder 5 Mal) wird der Status auf "nicht aktiv" gesetzt (d.h. diese Benutzerkennung ist ungültig geworden).
Bei einem gültigem Login wird der Zähler wieder auf 0 zurückgesetzt.
so short ...
Viele Grüße
lulu
Hallo,
Du könntest zu jeder Benutzerkennung einen Status "aktiv/ nicht aktiv"
speichern. Weiterhin zu jedem Benutzernamen die Anzahl der fehlerhaften
Login-Versuche.
Wenn die Fehler einen bestimmten Wert überschreiten (z.B. 3 oder 5 Mal) wird der Status auf "nicht aktiv" gesetzt (d.h. diese Benutzerkennung ist ungültig geworden).
Bei einem gültigem Login wird der Zähler wieder auf 0 zurückgesetzt.
Dann kann er sich das gleich schenken...
Aber du meintest sicher, dass der Zähler bei einem gültigen Login dann zurückgesetzt wird, wenn er noch nicht MAXFAIL erreicht bzw überschritten hat, oder?
Tom