Handbuch: CAPTCHAme für WordPress
WordPress 5.8 bis 7.0, PHP ab 7.4 · Version 1.5.2 · 26 KB
Schlüssel holen
Sie brauchen zwei Zeichenketten, beide kostenlos nach der Registrierung:
- Sitekey
- Öffentlich. Er steht im Quelltext jeder Seite mit Formular und darf dort stehen.
- Secret
- Geheim. Er verlässt Ihren Server nur bei der Prüfung und gehört nie in eine Seite, in ein Repository oder in eine E-Mail.
Welche Formulare geschützt werden
Unter Einstellungen → CAPTCHAme lässt sich jedes einzeln an- und abschalten:
- Kommentare
- Anmeldung, Registrierung, Passwort vergessen
- Contact Form 7 – erscheint, sobald es installiert ist
- WPForms – ebenso
- YOOtheme Pro und andere Seitenbaukästen – eigener Schalter, siehe unten
Baukasten-Formulare (YOOtheme Pro)
YOOtheme Pro baut seine Formulare im Seitenbaukasten zusammen und bietet
keinen vorgesehenen Platz für ein fremdes Captcha. CAPTCHAme setzt deshalb an zwei
Stellen an, die WordPress selbst vorgibt: Das Widget wird per JavaScript in die
Formulare gesetzt, und die Einsendung wird über pre_wp_mail angehalten,
bevor die Mail hinausgeht.
Welche Formulare getroffen werden, entscheidet die CSS-Auswahl in den Einstellungen. Die Vorgabe trifft die üblichen YOOtheme-Formulare.
Zwei Betriebsarten
- Nur eingesetzte Formulare (Vorgabe)
- Erkennt ein Formular an einem versteckten Kennfeld. Ein Bot, der genau dieses Feld weglässt, kommt daran vorbei.
- Jede Formular-Mail aus dem Frontend
- Lässt keine Mail ohne gültiges Token durch. Lückenlos, kann aber andere Formular-Erweiterungen mit erfassen.
Ob der Schutz tatsächlich greift, steht in den Einstellungen unter Greift der Schutz? – bleibt die Angabe nach einem Testabsenden leer, passt die CSS-Auswahl nicht zu Ihrem Formular.
Eigene Formulare
Für Formulare, die das Plugin nicht kennt, gibt es einen Shortcode:
[captchame]
Und für Theme-Entwickler zwei Funktionen:
<?php captchame_field(); ?>
<?php
$pruefung = captchame_verify();
if ( is_wp_error( $pruefung ) ) {
// $pruefung->get_error_message() anzeigen
}
?>
Notausgang
Sollten Sie sich je aus dem Backend aussperren, hilft eine Zeile in der
wp-config.php, noch vor /* That's all */:
define( 'CAPTCHAME_DISABLE_LOGIN', true );
Das schaltet nur den Schutz der Anmeldung ab. CAPTCHAME_DISABLE
schaltet das ganze Plugin still.
Zusätzlich prüft das Plugin von sich aus, ob sein Sitekey für diese Domain gilt. Ist die Einrichtung nachweislich kaputt, blockiert es die Anmeldung gar nicht erst – ein Captcha, das nicht funktionieren kann, schützt niemanden.
Abstand um das Widget
Jedes Formular bringt eigene Abstände mit. Klebt das Widget am Absenden-Knopf oder steht es zu weit vom letzten Feld entfernt, lässt sich das in den Einstellungen ausgleichen: Abstand oben und Abstand unten, in Pixeln.
20 Pixel passen zu den meisten Formularen. 0 in beiden Feldern setzt gar
keine Regel und überlässt den Abstand vollständig Ihrem Theme.
Erlaubte Domains
Im Dashboard lässt sich je Projekt festlegen, auf welchen Domains der Sitekey gilt. Das ist ein Schutz gegen fremde Nutzung Ihrer Schlüssel – und die häufigste Ursache, wenn das Widget schweigt.
www.
Ist nur beispiel.de eingetragen, Ihre Seite aber auch unter
www.beispiel.de erreichbar, bekommt das Widget dort keine Aufgabe und
erscheint nicht. Tragen Sie beide ein:
beispiel.de, *.beispiel.de
Ein leeres Feld erlaubt jede Domain.
Woran Sie erkennen, dass es läuft
Im Dashboard zeigt jedes Projekt zwei Haken:
- Widget eingebaut – das Widget hat Aufgaben ausgeliefert.
- Prüfung im Backend – Token werden serverseitig geprüft. Erst jetzt ist der Schutz vollständig; vorher könnte ein Bot am Formular vorbei absenden.
Der zweite Haken erscheint erst, wenn nach dem Einbau tatsächlich einmal abgesendet wurde. Senden Sie Ihr Formular also einmal testweise ab.
In der Vorgabe bekommen angemeldete Benutzer kein Captcha – sie sind bereits identifiziert. Schauen Sie im privaten Fenster nach, oder schalten Sie die Ausnahme in den Einstellungen ab.
Ob Sitekey und Domain zusammenpassen, beantwortet auch diese Adresse direkt:
https://captchame.de/api/v1/sitecheck?sitekey=IHR_SITEKEY&hostname=ihre-domain.de
Wenn der Dienst ausfällt
In der Vorgabe wird ein Formular abgelehnt, wenn CAPTCHAme nicht erreichbar ist. Lieber ein Besucher, der es noch einmal versucht, als eine Nacht offener Spam.
Wer das anders gewichtet, stellt in den Einstellungen auf Bei Störung durchlassen um. Dann gehen Formulare bei einer Störung ungeprüft durch.