Unsichtbarer Spamschutz mit Contact Form 7 und reCaptcha V3!

Das beliebte Formularplugin Contact Form 7 für WordPress hat in der aktuellsten Version 5.1 eine sehr interessante Zusatzfunktion bekommen: man kann nun den Spamschutz reCaptcha völlig unsichtbar einbinden – die Website-Besucher brauchen auch keine “Ich bin kein Roboter”-Boxen mehr anhaken oder seltsame Bilderrätsel lösen.  Das lässt sich sehr einfach in wenigen Schritten selbst aktivieren:

Ergänzung vom 21.09.2022: ich selbst setze ReCaptcha bewusst NICHT mehr ein, weder hier noch auf Kundenwebsites: das Tool lädt ziemlich viel JavaScript nach, das kann Websites deutlich ausbremsen. Weiters ist der Einsatz von reCaptcha nach DSGVO zustimmungspflichtig, der ungefragte Einsatz kann Grund für Abmahnungen oder Klagen sein. Damit kann aber ein Formulartool nicht sinnvoll funktionieren, denn wenn Besucher die Zustimmung nicht geben, kann das Formular nicht abgesendet werden. Es gibt auch lokale Spamschutz-Lösungen für Contact Form 7, mein Favorit ist Honeypot.
Wenn man reCaptcha dennoch verwenden und in CF7 konfigurieren will, dann funktioniert diese Anleitung weiterhin.

Website für reCaptcha v3 registrieren: Die API-Keys der Version 2 funktionieren nicht mehr. Also auch wer schon bisher reCaptcha 2 genutzt hat, muss seine Website neu registrieren. Melde dich in deinem Google-Konto an und geh auf die Verwaltungsseite für reCaptcha. In der Box “Neue Website registrieren” trägt man den Namen der Website ein, hakt reCaptcha v3 an und gibt an, für welche Domain(s) der Key gelten soll. Hier reicht es, den Domainnamen ohne http oder www einzutragen, also in meinem Fall etwa egm.at – Subdomains sind automatisch mit inkludiert. Danach noch “Nutzungsbedingungen akzeptieren” anhaken und auf “Registrieren” klicken.

Keys abrufen & in der Website eintragen: im nächsten Bildschirm werden zwei Schlüssel angezeigt, der Website-Schlüssel und der Geheime Schlüssel. Diese beiden Schlüssel müssen nun im Admin-Bereich deiner Website unter Formulare -> Integration -> reCaptcha -> Setup Integration eingetragen werden.

Fertig – deine Formulare nutzen nun allesamt reCaptcha, um Einträge von Spam-Bots zuverlässig abzuwehren – ganz ohne “Ich bin ein Roboter”-Abfragen oder irgendwelche unleserlichen Zeichen, die man erst entschlüsseln muss. Die früher nötigen Formular-Tags [recaptcha] sind nicht mehr nötig und können entfernt werden. Ab Version 5.1 ersetzt Contact Form 7 diese Tags bei der Formularausgabe selbständig durch Leerzeichen.

Diesen Beitrag teilen (bereits 0 Mal geteilt)

Ernst Michalek
Folgen:
13 Kommentare
  1. Nicky Hellfritzsch
    Nicky Hellfritzsch sagte:

    Da mein Kontaktformular nicht mehr funktionierte, stieß ich auf diese Seite. Ich habe alles geändert wie beschrieben (vielen Dank), das Formular funktioniert wieder. Nun meine Frage: Unter Settings des Plugin steht “Enable reCAPTCHA for” und dahinter ist ein weißes Feld. darunter ist ein gelbes Feld, welches aber nur in der Pro-Version freischaltbar ist. Hier steht ContactForm7, welches ich nutze drin. Liege ich richtig, wenn ich denke, dass mein Formular nicht geschützt ist?

    Antworten
    • Ernst Michalek
      Ernst Michalek sagte:

      Bei Contact Form 7 (und nur darauf bezog sich mein Beitrag) gibts keine Pro-Version und es ist auch kein zusätzliches reCaptcha-Plugin nötig. Das Feld “Enable reCAPTCHA for” gibts beim Plugin “Google Captcha (reCAPTCHA) by BestWebSoft”, das man sich vollständig sparen kann, weil die Integration via Contact Form 7 einwandfrei funktioniert. https://de.wordpress.org/plugins/google-captcha/

  2. Daniel Obry
    Daniel Obry sagte:

    Nachdem ich das Plugin Contact Form 7 aktualisiert habe musste ich auch reCaptcha aktualisieren und habe es wie oben beschrieben gemacht. Leider funktionieren meine Formulare nun bei aktiviertem reCaptcha nicht mehr. Versucht man das Forlular zu versenden, erscheint eine Fehlermeldung, dass das Formular nicht versendet werden konnte, Kann mir jemand weiterhelfen ?

    Antworten
    • Ernst Michalek
      Ernst Michalek sagte:

      Wege zur Fehlersuche:
      – Funktioniert das Absenden, wenn die anderen Plugins alle deaktiviert sind? Wenn ja: eins nach dem anderen wieder aktivieren und jeweils danach testen.
      – Funktioniert das Absenden von einem anderen Browser aus?
      – Funktioniert das Absenden von einem anderen Internetzugang aus (anderer Provider, andere IP-Adresse)?

    • Ernst Michalek
      Ernst Michalek sagte:

      Die einfachste Variante ist folgender CSS-Code:

      .grecaptcha-badge{display:none;}

      Man muss allerdings die Website-Besucher nach den Benutzungsbedingungen drauf hinweisen, dass reCaptcha eingesetzt wird. Ein entsprechender Hinweis unteerhalb des Formulars ist daher empfehlenswert. Details dazu gibts auf https://developers.google.com/recaptcha/docs/faq#id-like-to-hide-the-recaptcha-v3-badge-what-is-allowed

      Hier auf meiner Website habe ich allgemein die Scripts für Contact Form 7 (und damit auch reCaptcha) nur für die Kontaktseite freigegeben, damit wird der Button nur auf der Kontaktseite angezeigt. Dazu in die functions.php des Themes die folgenden Codezeilen einfügen, in der zweiten Zeil 7777 mit der ID der Kontaktseite ersetzen:

      function conditionally_load_plugin_js_css(){
      if(!is_page(array(7777)) ) {
      wp_dequeue_script('contact-form-7');
      wp_dequeue_script('google-recaptcha');
      wp_dequeue_style('contact-form-7');
      }
      }
      add_action( 'wp_enqueue_scripts', 'conditionally_load_plugin_js_css' );

  3. typoid
    typoid sagte:

    Das Ausblenden des recaptcha 3 badges ist laut nutzungsbedingungen nicht erlaubt und sollte zur abmahnsicherheit auch dringend unterlassen werden. Wenn man das entsprechende skript nur auf der kontaktseite einblendet funktioniert recaptcha 3 nicht, denn es analysiert ja jegliche interaktion mit der seite um bots zu erkennen.

    fazit: recaptcha 3 ist eine katastrophe, nicht dsgvo-konform und cf7 hat sich damit keinen gefallen getan.

    Antworten
    • Ernst Michalek
      Ernst Michalek sagte:

      Das Ausblenden des reCaptcha 3 Badge IST erlaubt, solange man den User auf reCAPTCHA und die Benutzungsbedingungen hinweist (Quelle: FAQ zu Google rCAPTCHA). Die öffentlich in Europa verfügbaren Google-Dienste sind allesamt DSGVO-konform, da sie sonst seit Mai 2018 nicht mehr angeboten werden dürften. Die angedrohten Strafhöhen will sich nicht mal Google leisten.

  4. Marco
    Marco sagte:

    Hallo

    Dein Code für “nur das Anzeigen auf der Kontaktseite” geht bei mir auch nicht, die Fehlermeldungen werden oben links in der Seite angezeigt, vermutlich verwirft es das ganze CSS? Oder gibt es einen anderen Code?

    Antworten
    • Ernst Michalek
      Ernst Michalek sagte:

      Standardmäßig wird das Symbol auf jeder Seite angezeigt. Und ich denke wohl, dass Google das Ding in verschiedenen Sprachen ausliefert, je nach Browsersprache des Besuchers. Wird ja wohl nur hierzulande auf Deutsch angezeigt werden.

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert