Hallo Alexander
Ich sperre die IP-Adresse UND den Benutzernamen. Damit umschiffe ich Brute-Force-Angriffe recht gut.
Das wird deine User freuen. Insbesondere wenn jemand auf die Idee kommt, einfach alle möglichen Namen durchzuprobieren.
Das Problem ist mir bewusst - wobei es natürlich etwas gelindert wird. Da der "jemand" keine Meldung bekommt und nach 3 Versuchen die IP-Adresse gesperrt wird kann er ja kein weiteres Konto angreifen - außer er ändert "auf Verdacht" seine IP-Adresse. Ich werde mir da aber noch verstärkt Gedanken drüber machen müssen :-(
Dein Konzept ist extrem wackelig. Bist Du sicher, dass AJAX bei allen Benutzern funktioniert? Und hältst Du es wirklich für sinnvoll, Benutzernamen und Password per GET-Request zu übertragen? Spätestens wenn irgendjemand an Dein Access-Log herankommt, hast Du ein riesiges Problem.
Das ist kein Problem. Der Fallback (falls kein AJAX geht) funktioniert über POST. Das Passwort wird allerdings nur als Hash übertragen. Das alleine bringt natürlich nicht viel ;-), darum habe ich da folgendes Konzept.
Beim Ausführen der Abfrage ermittle ich zuerst die Client-IP-Adresse. Dann nehme ich das Kennwort + die IP und bilde daraus einen MD5. Den übertrage ich an den Server.
Das übertragene Kennwort ist also an die aktuelle IP-Adresse gebunden.
Natürlich hätte ich es lieber über POST, aber dann muß ich weg von AJAX.
Mit den Log-Dateien habe ich keine Probleme. Ist ein eigener Server. Die Protokolle gehen in einen SQL Server. Da kann ich direkt per Trigger die Query´s ausfiltern.
Hast Du übrigens mal nachgemessen, wie viel langsamer HTTPS gegenüber HTTP ist?
Ich muß gestehen - nein. Habe gerade mal gegoogelt. Da gehen die Meinungen etwas auseinander - zwischen "etwas langsamer" bis 1:5.
Nebenbei laufen allerdings mehrere Webseiten auf dem Server, die allerdings grob zu einem Projekt gehören. Um nun nicht für jede Seite ein Zertifikat zu kaufen nehme ich hier eines für einen Host mit einem allgemeingültigen Namen und lasse die jeweiligen Bereiche in virtuellen Verzeichnisen laufen.
Gruß
Matthias