TYPO3 – Captcha und Spam Probleme

Wir erhalten immer mehr von Kunden die Nachricht, dass die Kontaktformular mit Formhandler und einem älteren Bild-Captcha (captcha, sr_freecap usw.) Probleme machen und immer mehr E-Mail Spam auftaucht.
Hier haben wir leider noch nicht die Erweiterung powermail testen können, aber hier hat uns der Entwickler von Powermail einen Anleitungs-Link geschickt:
Standard: https://github.com/einpraegsam/powermailrecaptcha

Als Lösung verwenden wir nun das Google reCaptcha und möchten Euch kurz einen Einblick dazu geben:

Der Formhandler unterstützt soweit schon das Google-Captcha, hier findet Ihr in der HTML Datei: mastertemplate.html folgenden HTML-Code:

<!-- ###master_spamprotection-jm_recaptcha### -->
<div class="row">
	<div class="large-12 columns">
		<label class="inline ###is_error_recaptcha_response_field###">###LLL:captcha### *</label>
	</div>
	<div class="large-12 columns">
		###RECAPTCHA###
		###error_recaptcha_response_field###
	</div>
</div>
<!-- ###master_spamprotection-jm_recaptcha### -->

Diesen Code könnt Ihr nach belieben anpassen.

In die HTML-Datei: step-1.html müsst Ihr nun noch den Marker hinzufügen:
###master_spamprotection-jm_recaptcha###

Installiert nun folgende TYPO3 Extension: jm_recaptcha

Hier ist es wichtig, dass Ihr noch eine Google-API Key beantragt:
https://www.google.com/recaptcha/admin

Hier tragt Ihr bei „Label“ am besten den Domain-Namen ein. Ich verwende die „reCAPTCHA, Version 2“ und dann noch die URL in das Feld „Domains“ eintragen: example.de
Anschließend noch die Nutzungsbedingungen akzeptieren und auf „registrieren“ klicken.

Die API-Codes tragt Ihr dann in das TYPOSCRIPT Setup ein:

plugin.tx_jmrecaptcha {
  public_key = xXxxxXXXXxxUAAAAAH9Ma-XXxxXXXXxxXX
  private_key = xXxxxXXXXxxUAAAAAChWfslXxXXXXxxXXXX
}

Damit nun auch das neue Captcha-Feld als „Pflichtfeld“ erkannt wird, müssen wir noch im TYPOSCRIPT von der Formhandler-Erweiterung die validators ändern.
recaptcha_response_field.errorCheck.1 = jmRecaptcha
Als Beispiel meine Config:

  validators {
    1.class = Validator_Default
    1.config.fieldConf {
      lastname.errorCheck.1 = required
      email.errorCheck.1 = required
      email.errorCheck.2 = email
      message.errorCheck.1 = required
      #captchafield.errorCheck.1 = required
      #freecapfield.errorCheck.1 = required
      #freecapfield.errorCheck.2 = srFreecap
    
      recaptcha_response_field.errorCheck.1 = jmRecaptcha
    }
  }

Nun sollte schon alles auf der Formular-Seite passen.
Die passenden Spracheinstellungen kann hier in der Datei angepasst werden: lang.xml
Hier benötigen wir noch das passende Sprach-Label für die Fehlernachricht. „error_recaptcha_response_field_jmRecaptcha“

<label index="error_recaptcha_response_field_jmRecaptcha">Bitte geben Sie die Sicherheitsabfrage an!</label>

Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar

Hat Euch der Artikel weitergeholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!

Hat Euch der Artikel weitergeholfen oder gefallen? Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!Ich bin freiberuflicher TYPO3-Entwickler, Web-Entwickler und Frontend-Entwickler. Ich arbeite im und für das Web etwas mehr als 12 Jahre. Mehr Infos zu der TYPO3 Internetagentur - INGENIUMDESIGN.

Leave a Reply

4 Kommentare

  1. ok, Code wird rausgefiltert, daher nochmal:
    Die Fehlermeldung sollte mit error_recaptcha_response_field_jmRecaptcha funktionieren.

Next ArticleTYPO3 CMS 8.7.0 LTS veröffentlicht