Captcha-Plugin leerer Code möglich?

  • Hallo Joomla-Community,

    ich hatte vereinzelte Spam-Nachrichten über meine Kontaktseite bekommen und mir daraufhin (kein Bock auf Google) ein kleines Captcha-Plugin gebastelt. Daraufhin sind ist die Zahl der SPAM-Nachrichten explodiert statt kleiner zu werden. Nachdem ich eine Logging-Funktion in mein Plugin eingebaut hatte, habe ich sehr schnell gemerkt, dass die durchgehenden Anfragen überhaupt keine/komplett leere Antworten enthielten.


    Natürlich lässt sich das (wenn man es erst mal rausbekommen hat) gut abfangen, aber ich wundere mich, dass diese Anfragen überhaupt bis zu meinem Captcha-Plugin kommen. Wenn ich normal über das Formular anfrage zum Testen, wird das ja auch nicht akzeptiert. Scheinbar bei direkten (automatisierten) Server-Anfragen dagegen schon? Ich bin ja alles andere als ein Profi, darum wage ich erst mal noch nicht öffentlich darüber zu urteilen...

    Was denken die erfahreneren Webentwickler unter euch darüber? Kann das Problem jemand nachvollziehen? Danke für eure Antworten!

  • .....und zudem auch die Option "Kopie an Absender" deaktivieren, falls noch nicht geschehen! Diese wird meist für solche Geschichten missbraucht.

    Jep, das habe ich auch gemerkt und dann jetzt auch gemacht, auch wenn ich es schade finde, dass es nötig ist - wenn ich jemanden kontaktiere, nutze ich die immer gern.


    Ansonsten ging es mir aber nicht darum, Empfehlungen für Captcha-Plugins zu bekommen, sondern darum, dass ich den Eindruck hatte, dass der Joomla Core an dieser Stelle unnötig verwundbar ist: Weil er bei eingeschaltetem Captcha offensichtlich nicht mehr prüft ob tatsächlich eine Eingabe für dieses vorliegt wenn er die Mail sendet, sondern nur wenn man im Formular auf "absenden" klickt. Anders kann ich mir schlecht erklären, warum ich eine Fehlermeldung bekomme, wenn ich das Captcha nicht ausfülle (und die nicht vorhandene Eingabe dann gar nicht an dieses weitergeleitet wird zur Prüfung), aber der Bot offensichtlich mit leerem Wert für das Captcha durchkommt, sodass dieses den Leerwert erst händeln muss.


    Gibt es einen guten Grund für dieses Verhalten oder haltet ihr es für schlicht egal? Könnt ihr es ggf. aus eigener Erfahrung bestätigen oder ist es womöglich ein Problem innerhalb meiner Installation?


    Ich habe leider auch keine Ahnung, wie ich einen solchen Angriff selbst simulieren könnte, deswegen sind meine Aussagen leider gerade von der Angriffslust eines scheinbar verrückten Chinesen abhängig und nicht eindeutig belegbar. Wenn ihr also Tips habt, wie ich das beschriebene Verhalten selbst reproduzieren könnte, sind die auch willkommen.

  • Seh ich nicht. Wenn ich JS deaktiviere und das required aus dem Messagefeld entferne, so, dass der Browser auch nicht mehr blockt, bekomme ich nach Senden ´+ Neuladen der Seite ein "Feld benötigt: Nachricht" und wird nicht gesendet.

    Serverseitige Validierung läuft also wie erwartet.


    Klar, dass ein einzelnes Leerzeichen reicht, das auszuhebeln. Aber kann man ja auch in einem eigenen Plugin (onValidateContact) noch abfangen.


    https://github.com/joomla/joom…ers/contact.php#L140-L149

  • Vielen Dank für deine Antwort! Hast du auch getestet, ob er noch meckert, wenn du zwar in den anderen Feldern etwas angibst, aber nicht beim Captcha? Du scheinst ja auf jeden Fall schon mal mein Problem verstanden zu haben und eine Idee zu haben, wie man sowas testet (würde ich trotz deiner Hinweise jetzt wieder Stunden rumwerkeln dran, fürchte ich). :)


    Mit Leerzeichen wäre das Captcha übrigens in meinem Fall schon nicht mehr ausgehebelt worden, aber trotzdem danke für den Tip mit onValidateContact, da komme ich ggf. gerne mal drauf zurück!

  • Wie alle anderen Felder wird das Captcha natürlich validiert. Da reicht kein Leerzeichen, sondern es muss eingegeben werden, was gefordert wird. Und, wenn ein Plugin wie reCaptcha JS-basiert ist und JS deaktiviert ist, geht natürlich gar nichts. Wegen serverseitiger Validierung.


    Aber unter'm Strich werden eh alle Captchas irgendwann gehackt. Deshalb finde auch ich ECC+ richtig, weils noch ein paar Zusatzeinstellungen gibt. Ich habe noch nie Spam über's Kontaktformular bekommen.