Captcha-Spamschutz

Ab Version 3.2 stellt Virthos Master Hilfen zur Verfügung, um Formulare mit Hilfe von sogenannten Captcha-Bildern abzusichern. Dadurch lässt sich verhindern, dass Formulardaten, die von Spamrobotern stammen, weiterverarbeitet werden.

Um den Captcha-Schutz zu verwenden, müssen Sie in das betreffende Formular zwei zusätzliche Elemente einbauen — ein Bild und ein Eingabefeld:

<form action=“{{vtLink}}“ method=“post“>
 ...
 <img src=“{{vtCaptcha}}“ width=“140“ height=“40“ alt=“captcha“>
 ...
 <input name=“captcha_code“ type=“text“ size=“8“>
 ...
</form>

Die Bild-URL wird mit Hilfe des Platzhalters vtCaptcha in das img-Element eingefügt. Die URL verweist auf einen sogenannten Captcha-Generator, also ein Skript, das Bilder erzeugt, die von Menschen leicht, von Robotern aber nur schwer interpretierbar sind.

Der Name des Eingabefeldes (im obigen Beispiel captcha_code) kann frei gewählt werden. Bei der Verarbeitung des Formulars wird der eingegebene Wert dann mit dem Code verglichen, den der Captcha-Generator erzeugt hat und der sich mittels vtCaptchaSecret ausgeben lässt:

<!--{{vtIf: {vtPostValue:captcha_code} .neq. {vtCaptchaSecret} }}-->
 <p>Der eingegebene Captcha-Code war nicht korrekt.</p>
<!--{{vtElse}}-->
 ...
<!--{{vtEndIf}}-->

Der von Virthos bereitgestellte Captcha-Generator ist unter system/resources/captcha/captcha.php abgelegt. Damit er funktioniert, muss die PHP-Umgebung mit der GD-Bibliothek und FreeType-Support ausgestattet sein. Es ist auch möglich, einen eigenen Captcha-Generator zu verwenden. Dazu stehen zwei Konfigurations­parameter zur Verfügung:

  • captchaUrl
    absolute oder relative URL des Skriptes, das als Captcha-Generator verwendet werden soll (Vorgabe: system/resources/captcha/captcha.php); eine relative URL wird vom Virthos-Basisverzeichnis aus aufgelöst
  • captchaSessionVar
    Name der PHP-Sessionvariablen, in der der Captcha-Code gespeichert wird (Vorgabe: vtcaptcha); wenn Sie den eingebauten Captcha-Generator verwenden möchten, dürfen Sie diesen Parameter nicht verändern