Contact Form 7 ohne reCAPTCHA-Option

In der neuen Version des WordPress Plugins Contact Form 7 ist eine Option zum einfachen Einbau von reCAPTCHA vorhanden.

Dies ist sicher gut gedacht. Wer seine Formular gegen Missbrauch durch Spaming bewahren möchte, greift gern zu reCAPTCHA. Leider hat reCAPTCHA nicht nur eine gute Seite. Um es mal etwas pointiert zu sagen:

Weil ich zu faul bin, einen Spamfilter einzurichten, setz ich meine Leser der Willkür einer Datenkrake aus.

Wenn ich reCAPTCHA in meiner Seite einbinde, bedeutet dies nichts anderes, als daß ich es Google erlaube, JavaScript an die Besucher meiner Webseite zu liefern. Dieses JavaScript ist dann zudem auch interaktiv: Es werden Mausbewegungen abgefragt und weitere Parameter. Das JavaScript kann auf sehr viele Informationen meines Browsers zugreifen und erlaubt es so sehr einfach einen eindeutigen Browser-Fingerprint zu erstellen.  Ich hab auch keinen Einfluß darauf, was Google oder ein anderer CAPTCHA-Anbieter sonst noch macht. Google selbst arbeitet nach dem Motto, „Do not be evil“; Dies gilt jedoch für andere Anbieter nicht unbedingt.  Kürzlich wurden einige Anbieter dabei erwischt, mittels JavaScript zu Lasten von Seitenbesuchern Bitcoins zu minen…

Daher: Es ist ein großer Fehler einfach so Fremdcode, egal ob JavaScript, CSS, Bilder, Fonts oder anderen interaktiven oder ausführbaren Content,  in eine Webseite einzubinden. Lasst dies sein! Verkauft eure User nicht, nur um ein paar billige Features auf eure Website zu bekommen.

Zurück zu Contact Form 7 und die reCAPTCHA-Option:

Wenn ich selbst auf meiner eigenen WordPress-Installation CF7 einsetze, liegt es an mich selbst, die Option zu ignorieren. Wenn ich jedoch als Betreiber einer Multisite-Instanz das Plugin anbiete, dann möchte ich meine Redakteure davor bewahren aus guten Vorsätzen das Falsche zu machen. Gleichzeitig soll das Plugin weiterhin intakt und voll funktionsfähig bleiben.

Im Backend ist die reCAPTCHA-Option als Button eingebunden:

Der HTML-Code hierzu sieht so aus:

<a href="#TB_inline?width=900&amp;height=500&amp;inlineId=tag-generator-panel-recaptcha" class="thickbox button" title="Formular-Tag Generator: reCAPTCHA">reCAPTCHA</a>

 

Zwar hat der Button keinen eindeutigen Classname, aber dafür einen eindeutigen title-Attribut. Diesen können wir nutzen. Die Lösung ist also ein bißchen CSS:

#tag-generator-list {
    a[title ~= "reCAPTCHA"] {
	display: none;
    }
}

Das CSS kann ich entweder in ein global aktiviertes Plugin oder in den Stylesheet von Themes tun.