Googles Recaptcha ist äußerst beliebt. Sorgt es doch dafür, dass das automatisierte Ausfüllen von Formularen im Web erschwert wird. Nun kommt Recaptcha V3, und das einst so beliebte Tool wird zu einer der größten Tracking-Werkzeuge – wenn es nach Google geht.
Google schreibt dazu „we recommend including reCAPTCHA verification on forms or actions as well as in the background of pages for analytics„. Google meint also, man solle die Scripte auf möglichst vielen Webseiten einbinden, auch wenn man auf der einzelnen Seite gar keine Prüfung machen will. Ein fast perfektes Tracking-Tool.
Was ist daran so problematisch?
Bisher wurden die Recaptcha Scripts nur auf Seiten eingebunden, die auch eine Prüfung von Nutzereingaben vornehmen wollen. Das war auch schon problematisch, weil Google so ganz gut weiß, welche Nutzer auf welcher Webseite Eingaben machen. Mit dem neuen Werkzeug weiß Google nun auch, welchen Weg der Nutzer durch das Web nimmt, kann Klickwege nachvollziehen, und seine Datensammlung noch tiefgreifender machen. Der gläserne Webnutzer ist Realität, ohne dass er/sie etwas dagegen tun kann.
Aber mit Tools wie Google Analytics war das doch auch so!
Klar, aber es gab Abwehrmöglichkeiten. Es gibt Browserplugins, welche die Analytics-Scripte lahmlegen. Die DSGVO schreibt die Nutzung der Anonymize-IP Funktion vor. Analytics steht im Fokus der Datenschützer. Recaptcha tut das noch nicht.
Also ersetzen wir Google Recaptcha mit einem anderen Tool?
Das ist der Plan. Wir benutzen das Tool PHPCaptcha, welches zu finden ist unter https://github.com/pstimpel/phpcaptcha. Es nutzt GD zum Anzeigen eines Textes, und ist sehr einfach einzurichten. Es läuft unter PHP5 und PHP7, und nutzt eine einfache Session-Variable zum Speichern der Captcha-Lösung.
Setup PHP Captcha
Wir laden uns das passende Archiv des Tools herunter, am besten unter „Releases„. Wir entpacken das Archiv in unserem Webroot, ich nehme hier exemplarisch den Ordner /modules. Durch das entpacken entsteht also der Ordner /modules/phpcaptcha-version.
In diesem Ordner befindet sich eine config.php. Wir fassen die vorerst noch nicht an, denn sie enthält grundlegend ein funktionierendes Setup. Wenn wir im Browser jetzt
https://meinserver/modules/phpcaptcha-version/index.php
Du musst die Pfade natürlich an deinen Server und deine Domain anpassen
aufrufen, sollten wir eine Grafik sehen, welche in etwa wie folgt aussieht:
OK, das sieht schon mal gut aus.
Einbinden in das bestehende Formular auf deiner Webseite
In dem Formular, in welchem du bisher Google Recaptcha benutzt hast, entfernst du erst mal den ganzen Google Recaptcha Kram. Du entfernst also die Referenz zum Script, und den Initialisierungs-Script-Block. Im DIV, welches das Recaptcha hielt, gibst du nun ein:
<img src="https://meinserver/modules/phpcaptcha-version/index.php" />
Du musst die Pfade natürlich an deinen Server und deine Domain anpassen
Außerdem brauchen wir noch ein Feld, in welches der Nutzer den Captcha-Text eintragen kann:
<p>Bitte den Text von der Grafik oben hier eingeben</p>
<input type="text" name="captchasolve" value="">
Haben wir das auch geschafft.
Prüfung der Captcha-Daten im PHP
Dort, wo du bisher den Recaptcha-text geprüft hast, ersetzt du diese mit folgender Prüfung:
if (isset($_SESSION['phpcaptcha']) && isset($_REQUEST['captchasolve']) &&
$_SESSION['phpcaptcha'] == $_REQUEST['captchasolve'] ) {
//Lösung war korrekt
} else {
//Lösung war nicht korrekt
}
Ein letzter Test…die Welt ist ein bisschen besser!
Weitere Anpassungen
Du kannst in der config.php eine ganze Menge Dinge anpassen, von Farben bis hin zum verwendeten Font. Rumprobieren ist angesagt, viel Spaß!