reCAPTCHA mit Perl verwenden

Wichtig: Version 1.0 der reCAPTCHA API wird nicht mehr unterstützt. Führen Sie ein Upgrade auf Version 2.0 aus. Weitere Informationen

Mit dem reCAPTCHA Perl-Modul können Sie auf einfache Weise ein CAPTCHA auf Ihrer Website platzieren und so verhindern, dass Bots missbraucht werden. Das Modul umschließt die reCAPTCHA API.

Wenn Sie reCAPTCHA mit Perl verwenden möchten, können Sie das von Andy Armstrong bereitgestellte reCAPTCHA Perl-Modul herunterladen. Sie müssen dieses Modul auf Ihrem Computer (Webserver) installieren. Das Modul hängt von den Modulen LWP::UserAgent und HTML::Tiny ab, die ebenfalls installiert werden müssen. Hier finden Sie einige grundlegende Anweisungen zum Installieren von Perl-Modulen.

Schnellstart

Nachdem Sie sich für Ihre API-Schlüssel registriert und das reCAPTCHA Perl-Modul heruntergeladen haben, finden Sie im Folgenden eine grundlegende Anleitung zur Installation von reCAPTCHA auf Ihrer Website.

Clientseitig (So wird das CAPTCHA-Bild angezeigt)

Wenn Sie das Perl-Modul zum Anzeigen des reCAPTCHA-Widgets verwenden möchten, müssen Sie diese Zeile mit dem Formularelement am Anfang der Datei einfügen, wo das reCAPTCHA-Widget angezeigt werden soll:

    use Captcha::reCAPTCHA;

Anschließend müssen Sie eine reCAPTCHA-Instanz erstellen:

    my $c = Captcha::reCAPTCHA->new;

Zum Anzeigen des reCAPTCHA-Widgets müssen Sie schließlich die folgende Zeile in das <form>-Tag einfügen:

    print $c->get_html("your_public_key");

Ihr Code könnte also in etwa so aussehen:

    use Captcha::reCAPTCHA;

    my $c = Captcha::reCAPTCHA->new;

    print <<EOT;
    <html>
      <body>
        <form action="" method="post">
    EOT

    print $c->get_html("your_public_key");

    print <<EOT;
        <input type="submit" value="submit" />
        </form>
      </body>
    </html>
    EOT

Vergessen Sie nicht, your_public_key durch den Wert Ihres API-Schlüssels zu ersetzen.

Serverseitig (So testen Sie, ob der Nutzer die richtige Antwort eingegeben hat)

Im Folgenden sehen Sie ein Beispiel dafür, wie Sie die reCAPTCHA-Antwort verifizieren können:

    use Captcha::reCAPTCHA;

    my $c = Captcha::reCAPTCHA->new;

    my $challenge = param 'recaptcha_challenge_field';
    my $response = param 'recaptcha_response_field';

    # Verify submission
    my $result = $c->check_answer(
        "your_private_key", $ENV{'REMOTE_ADDR'},
        $challenge, $response
    );

    if ( $result->{is_valid} ) {
        print "Yes!";
    }
    else {
        # Error
        print "No";
    }

Weiterführende Literatur

  • Erscheinungsbild anpassen
  • Tipps und Richtlinien
  • Fehlerbehebung