Facebook Button Twitter Button YouTube Button RSS Button

IT-Runde

Spam verhindern: Einbinden des reCaptcha von Google

  • Einbinden des reCaptcha von Google als Spam-Captcha

    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!

  • Kostenlose IT-Tipps

    • Nebenbei ein Online Business aufbauen
    • Passiv Geld generieren
    • Online Trends (Nischenseiten, SEO, Google & Co.)

     
     


  1. #1 %~TheMachine~%
    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 😀

    Post ReplyPost Reply
  2. #2 Mainboarder
    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.

    Post ReplyPost Reply
  3. #3 Sophie
    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

    Post ReplyPost Reply
  4. #4 Mainboarder
    30.10.2012 um 11:04 Uhr

    Das ist richtig. Damit werden auch die Standortdaten von Maps verbessert.

    Post ReplyPost Reply
Kommentar schreiben