Tweet | ![]() |
Spam verhindern: Einbinden des reCaptcha von Google
-
Ein jeder Webseiten-Betreiber wird irgendwann vor dem Problem stehen, ein Captcha (also eine Sicherheitsabfrage) einzubauen zu müssen. Sei es bei einem einfachen Login, einer Registrierung oder einem ganz normalen Kontaktformular. Je länger eine Webseite online ist, desto mehr Bots tummeln sich nach und nach auf dieser rum und je schneller werden die Formulare automatisch ausgefüllt und landet schlussendlich unerwünschter Spam im E-Mail Eingang. Einfache Sicherheitsabfragen wie “Geben Sie %Keyword% ein:” oder “Was ist 3 + 5?” sind für die immer intelligenter werdenden Bots kein Problem mehr. Sogar selbst gescriptete Captchas sind meist entweder viel zu einfach oder können nichtmal von menschlichen Wesen passend entschlüsselt werden.
Eine passende und effektive Captcha hat sich Google einfallen lassen: reCaptcha
“Toll, und was ist jetzt so besonders daran?” werden sich die ersten Fragen. Es ist nicht nur eine einfache Captcha vom Suchmaschinen-Riesen. Jeder kann die Captcha kostenlos in das eigene Projekt integrieren und das ganze verfolgt noch einen guten Zweck und benötigt dazu nicht einmal Professionelle Rechnungsprogramme – Auf jeder Sicherheitsabfrage sind genau zwei Wörter abgebildet: Eines ist dem System bereits bekannt und bestätigt, das andere ist ein unerkanntes Wort aus einem Digitalisierungsprojekt. Der Nutzer beteiligt sich daran, durch dieses Capctha kostenlos für das Gemeinwohl am Schrifterkennungsprojekt reCAPTCHA mitzuwirken. Wenn man bedenkt, dass die Personen im Internet täglich ganze 150.000 Stunden damit verbringen müssen Captchas auszufüllen, ist die Idee eines solchen “Buchdigitalisierungsprojektes” genial :cool:!
Wie binde ich reCaptcha ein?
Die Captcha in das eigene Projekt einzubauen ist gar nicht so schwer wie es vielleicht im ersten Augenblick aussieht. WordPress Nutzer können sich einfach das reCaptcha Plugin runterladen und kinderleicht die Sicherheitsabfrage integrieren.
Webseitenbetreiber haben es da schon ein wenig schwerer, dürfte aber auch jeder Hobby-Coder eingebaut bekommen. Zuerst muss die aktuellste Version der reCAPTCHA PHP library auf den Server geladen werden. Jetzt wird das Capctha im Formular über folgenden Code eingebunden:
1 2 3 4 5 6 7 8 9 10 11 12
<?php // Code gesehen auf IT-Runde.de // Einbinden der reCaptcha PHP Library require_once('recaptchalib.php'); $publickey = "xxx"; // Public Key $privatekey = "xxx"; // Private Key // Einstellungen für das reCaptcha echo '<script type="text/javascript"> var RecaptchaOptions = {lang:\'de\',theme:\'white\'}; </script>'; // Aufrufen des Captchas via PHP Funktion echo recaptcha_get_html($publickey, $error); ?>
Angepasst werden müssen von euch nun nur noch die beiden Key’s (bekommt man auf der reCapctha Webseite) und möglicherweise die Werte der RecaptchaOptions, wofür verschiedene Stylevorlagen zur Verfügung stehen.
Wird das Formular nun abgesandt, kann über folgenden PHP-Code abgefragt werden, ob es erfolgreich ausgefüllt wurde oder nicht:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
<?php // Code gesehen auf IT-Runde.de // Einbinden der reCaptcha PHP Library require_once('recaptchalib.php'); $publickey = "xxx"; // Public Key $privatekey = "xxx"; // Private Key // Rückgabe Werte vom reCaptcha zurücksetzen, falls bereits ein Wert besteht $resp = null; $error = null; // Abfrage ob das Captcha ausgefüllt wurde if ($_POST["recaptcha_response_field"]) { $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if ($resp->is_valid) { // Das Captcha ist richtig ausgefüllt }else{ $error = $resp->error; // Das Captcha ist Falsch, über die Variable $error kann auf die Fehlermeldung zugegriffen werden } }
In der IF-Anweisung kann nun mit den Ergebnissen je nach Belieben vorgegangen werden. Entweder wird eine Meldung ausgegeben, das Formular erneut aufgerufen oder etwas ganz anderes ;). Ihr habt wie immer freie Hand!
Mit welcher Capctha haltet ihr zurzeit Bots davon ab euch mit Spam zu bombardieren? Was haltet ihr von dem Grundgedanken des reCaptchas? Uns interessiert eure Meinung!
Tweet
31.05.2012 um 22:02 Uhr
Danke für die Anleitung! Da habe ich schon viel von gesehen, nur selbst einbinden konnte ich das bisher noch nie.. vor allem das WordPress Plugin ist super 😀
06.06.2012 um 11:44 Uhr
Ich nehme lieber ganz andere Methoden um Bots zu überführen (project honeypot, versteckte checkbox, spracherkennung). Captchas sind ja doch für den Nutzer sehr unbequem.
24.08.2012 um 08:39 Uhr
Hallo,
danke für die Info. Kann es sein, dass mittlerweile auch Hausnummern aus streetview abgefragt werden? Ich meine, da neulich so etwas gesehen zu haben.
Grüße
Sophie
30.10.2012 um 11:04 Uhr
Das ist richtig. Damit werden auch die Standortdaten von Maps verbessert.