PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Login-Script mit Benutzersperrung (http://www.selfphp.de/forum/showthread.php?t=4058)

Swordfish 21.04.2003 16:41:47

Login-Script mit Benutzersperrung
 
Hi @ll

Ich möchte ein möglichst sicheres Login-Script schreiben, habe zu diesem Thema nichts im Forum gefunden und bräuchte noch ein paar Denkanstösse...


Wenn Usernamen und Passwort stimmen, ist das Ganze ja kein Problem, aber ich möchte (absichtliche) Falscheingaben möglichst eindämmen und suche nun nach einer Methode, wie ich einen beliebigen Surfer nach drei Fehleingaben sperren kann und zwar auf zwei verschiedene Arten:


1) Wenn der User wirklich in der DB vorhanden ist, kann ich ihn dort auch sperren. Die Frage ist eher, wie ich das Hochzählen bis zum 3. falschen Login am besten mache... Ist ein Feld "fehlgeschlagene Logins" in der DB sinnvoll, das jedesmal um 1 erhöht wird oder soll ich die Anzahl falscher Logins besser in die Sessions-Variabeln aufnehmen? (Oder gibt es noch eine bessere Methode?)

2) Wenn der User gar nicht in der DB exisitiert und einfach einer versucht reinzukommen, wird das Ganze etwas mühsamer. Mit einer Session erkenne ich ihn zwar während der 3 Falscheingaben aber wie erkenne ich ihn beim nächsten Versuch? Setze ich ein Cookie, kann der Surfer diesen löschen und steht wieder mit "reiner Weste" da. Die IP kann ich schlecht blockieren, da ja mehrere DSL-Surfer z.B. sich eine IP teilen und ich nur den einen blockieren möchte. Die Session kann ich ja auch nicht ewig laufen lassen... Gibt es noch andere (oder ausgeklügeltere) Methoden, solch einen User wiederzuerkennen?


htacces habe ich leider (noch) nicht auf dem Server, dort würde das Abblocken nach 3 Falscheingaben ja funktionieren, allerdings kann man dort auch mehr oder weniger beliebig oft wieder einen Versuch unternehmen (einfach nach 3 falschen Eingaben die Seite neu laden), es ist also auch nicht so das Gelbe vom Ei...

c4 21.04.2003 17:15:34

Absolute Sicherheit gibt es nicht, das sollte klar sein.

Bei GMX ist/war es so, dass nach 3 Fehleingaben eine andere Sicherheitsabfrage kam. Dann musste man die Antwort auf eine selbst gestellte Frage geben und kam dann damit rein.
Du könntest den Nutzer halt nach 3 Fehleingaben komplett sperren und selbiger muss sich dann beim Admin melden, um wieder aktiviert zu werden. Das ist aber nicht sonderlich fein, da dann nur einer ein Skript starten muss, dass alle Nutzerkonten durchgeht und überall 3 fehlerhafte Logins verursacht...

Da die Anzahl Versuche im Quelltext der Website leicht manipulierbar ist, sollte man schon eine DB dafür verwenden.

Auf Cookies würde ich nicht bauen. Zu leicht zu löschen oder sie werden gar nicht erst angenommen.

Also bleibt Dir nur eine IP-Sperre. Brute-Force-Attacken fallen somit schon mal aus - die wenigsten sind in der Lage eine falsche IP zu übermitteln und aus- und wieder einloggen ist der Mühe wohl kaum wert.
Die paar ICS' kannst Du in den Skat drücken. Die Wahrscheinlichkeit, dass das mal passiert ist zu gering.

Swordfish 21.04.2003 20:47:00

Das mit der absoluten Sicherheit ist halt so ne Sache, darum habe ich "möglichst sicher" geschrieben :)

Ich könnte ja nach 3 Versuchen den Benutzer und die IP sperren, dies würde eine Script-Attacke (,abgesehen davon, dass der Script-Auslöser alle erdenklichen Benutzernamen ausprobieren müsste, es also ein relativ "kluges" Script sein müsste, wenn der Auslöser nicht die nächsten paar Jahre auf Resultate warten möchte,) auch schon schwieriger machen. Wäre zwar eine Holzhammer-Methode, aber relativ effektiv...

Oder dann doch die GMX-Methode, hmmm... auf jeden Fall mal danke, werde mich noch für eine Methode entscheiden müssen...


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:41:15 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.