Moin!
ein beispiel:
Fein.
Ich reduziere das mal auf den relevanten Teil.
der member url ist http://www.domain.de/234567/geschützt.html
Da will man hin.
ich habe ein html formular das auf /cgi-bin/login.cgi zeigt.
Das Formular kriegt man. Das Formularziel ist bekannt.
Der berechtigte user [blahblah...] dann wird in die htaccess deny from IPsowieso eingetragen.
Im Grunde genommen erzählst du nichts neues: Du prüfst, ob die eingegebenen Authentifizierungsdaten in Ordnung sind und gibst im Erfolgsfall den Zugang frei.
Wer auch immer die passenden Daten hat, kommt rein. Wer unpassende Daten hat, kommt nicht rein. Wer es mit unpassenden Daten häufiger versucht, wird IP-basiert gesperrt.
Egal was für ein Umleitungstheater du veranstaltest: Dein Login läßt sich für reguläre User sperren, indem man einfach nur von genügend vielen IP-Adressen aus Login-Versuche startet.
Ich selbst gucke mir ab und an den errorlog an (ob mal wieder gescannt wird z.B. mit Bruteforce)und falls nötig ändere ich den pfad
von http://www.domain.de/234567/geschützt.html auf
http://www.domain.de/abcdef/geschützt.html
Genausogut kannst du die Passwörter der User ändern. Ist auch egal. Da man, _wenn_ man ein Passwort (warum auch immer) herausgefunden hat, ja einen legalen Zugang kriegen und das Zielverzeichnis bekommen kann, ist deine Umbenennerei lediglich ein Herumdoktoren an Symptomen. Es bringt keinen zusätzlichen Schutz.
Auf der positiven Seite hast du ein System, was zu häufiges Falscheingeben der Daten durch komplettes Aussperren verhindert.
Auf der negativen Seite hast du ein System, was es Angreifern erlaubt, reguläre Benutzer durch Benutzung der Sperrfunktion auszusperren.
Das ist genau der Punkt, den ich die ganze Zeit diskutiere. Es gibt Systeme, die sollen eben genau diese negative Seite nicht haben, weil es inakzeptabel wäre, wenn reguläre Benutzer ausgesperrt würden. Außerdem würde sowas einen gewissen Verwaltungsaufwand verursachen.
Es ist klar das berechtigte member den wahren url kennen und vielleicht später,wenn sie nicht mehr mebers sind,versuchen mit dem bruteforce reinzukommen,aber wie gesagt von zeit zu zeit ändert sich der pfad eben und somit sehen die einfach nur noch 404 not found.
Das ist irrelevant. Es ist egal, ob ein Ex-Benutzer, dessen Passwort nicht mehr gilt, direkt auf die Ressource zugreifen will, oder ob er den offiziellen Eingang nimmt. Ein abgelaufenes Passwort ist ein abgelaufenes Passwort.
Deine Schilderungen beweisen eines: Du hast nicht das Supersystem erfunden. Du hast dich für eine Zugangssicherung entschieden, die man zuungunsten regulärer Benutzer angreifen kann, damit du einen höheren Level an Sicherheit erhälst. Als Preis bezahlst du einen höheren Verwaltungsaufwand und eine höhere notwendige Serverperformance (denn auch das Durchlesen einer IP-Sperrliste ist nicht kostenlos zu haben - insbesondere, wenn sie als .htaccess-Datei vorliegt und bei jedem Request neu geparst werden muß). Du machst dich also, auch wenn BruteForce nicht zum Ziel führt (aufgeklärte Angreifer wissen, dass sie damit nur sehr selten zum Ziel kommen), angreifbarer für DoS-Attacken.
Wenn ich die Wahl hätte, entweder ein kompliziertes, performancefressendes und Benutzer aussperrendes System zu benutzen, oder ein einfaches, schnelles und prinzipiell bruteforce-bares (was ich durch das Vorschreiben bzw. Selbstgenerieren von Passworten gut im Griff haben kann), dann wähle ich lieber die zweite Variante.
Wir können die Diskussion an dieser Stelle gerne abbrechen - vielleicht ja sogar beenden. Ich behaupte ja schließlich nicht, dass man in dein System mit BruteForce reinkommt. Ich behaupte nur, dass man durch den Versuch, so reinzukommen, dir bzw. den regulären Benutzern mehr Schaden oder Ärger zufügen _könnte_, als mit einem "normalen" .htacces-Schutz.
Wenn du jetzt argumentierst, dass du noch nie Probleme gehabt hattest - dann hattest du bis jetzt Glück gehabt, dass du kein sonderlich attraktives Ziel abgibst.
- Sven Rautenberg
--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)