Avatar

Captcha (Features)

by Auge ⌂, Thursday, February 11, 2016, 15:50 (2996 days ago) @ Martin66

Hallo Martin,

großes LOB für das Feature, einzelne IPs zu sperren! Mein Logfile zeigt mir, dass es ein Spammer bei mir nun schon seit Monaten erfolglos versucht. :lol:

Wenn man die IP oder die typischerweise benutzten IPs kennt und diese auch zumindest über einen längeren Zeitraum genutzt werden, ist das schon ein feines Werkzeug. In mlf1 gab es das ja auch schon, wobei die Speicherung der zu bannenden IPs, Worte und Benutzernamen nicht optimal war. Das waren einfach kommaseparierte Listen in einem Datenfeld. Wie das in mlf2 gelöst ist, weiß ich aus dem Stehgreif nicht.

In der nicht stabilen Version von mlf1 habe ich jedenfalls das Speicherformat geändert, so dass jede IP einen eigenen Eintrag in der Datenbank und einen Zähler bekommt. So wird auch aus einem Datenbestand von mehreren zehn- bis hunderttausend IPs kein Performanceproblem.

Es handelt sich um einen Brute-Force-Angriff, ca. alle 1-2 Minuten.

Du meinst einen Zugriffs- bzw. Eintragsversuch alle ein bis zwei Minuten? Ja, das kenne ich. Dabei habe ich in meinem Testforum mal live zugeschaut. Das war gruselig.

Das Captcha scheint dabei kein Problem zu sein. Deswegen habe ich mir über das Captcha Gedanken gemacht, da ich mein Forum auch weiterhin für unregistrierte User offen halten will:

Dir ist hoffentlich klar, dass der Eintrag im Zweifelsfall ohne den Aufruf des Formulars erfolgen kann?

Ein 5-stelliges Captcha ist für einen Brute-Force-Angriff kein Hindernis. Außerdem ist der Zeichenvorrat derzeit auf 28 Zeichen begrenzt: 28^5 (17 Millionen) Möglichkeiten. Und auch Zeichenerkennung ist einfach: Wenn es eine bestimmte Anzahl fixer Hintergrundbilder gibt, muss man nur mehrfach ein Captcha aufrufen, die Bilder vergleichen, und kann dann den Hintergrund rausrechnen. Deswegen sollte der Hintergrund variabel sein.

Ich habe mir deinen Code bisher nicht im einzelnen angeschaut. Deine Zustandsbeschreibung erscheint aber schlüssig.

Daher habe ich modules/captcha/captcha.php überarbeitet. Jetzt wird ein mal 7-, mal 8-stelliger Code benötigt, und der Zeichenvorrat ist um @%&?# ergänzt. Daraus ergeben sich 33^7 (42.6 Milliarden) bzw. 33^8 (1.4 Billionen) verschiedene Eingabemöglichkeiten. Brute force wird so wohl verdammt schwer.

Mit „verdammt schwer“ wäre ich in Zeiten der Cloud, in der man sich einfach beliebig viel Rechenzeit kaufen kann, verdammt (;-)) vorsichtig. Aber ja, die Anforderungen (in jegliche Richtung) steigen auf diese Art.

Der Hintergrund wird jedesmal neu erstellt, ohne vorgegebene Bilder

Frage dazu: Wie zufällig sind die generierten Hintergründe ohne Vorlagen schlussendlich? Nicht, dass dein "Graffity" auch nur aus ein paar wenigen Variationen besteht.

Ich habe keine Ahnung, ob das Ganze was bringt :-D

Du kannst ja zumindest über deine Beobachtungen deiner Installation berichten.

Aber dies als Vorschlag für die nächste mlf-Version. Und da es das erste Mal ist, dass ich etwas mit PHP gemacht habe, würden mich Meinungen und Verbesserungsvorschläge freuen :-)

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!


Complete thread:

 RSS Feed of thread