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

Das reCAPTCHA Perl-Modul bietet eine einfache Möglichkeit, ein CAPTCHA zu platzieren. auf Ihrer Website und verhindern so, dass Bots sie missbrauchen. Das Modul umfasst die reCAPTCHA API.

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

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 für um reCAPTCHA auf Ihrer Website zu installieren.

Clientseitig (Anleitung zum Anzeigen des CAPTCHA-Bildes)

Wenn Sie das Perl-Modul zur Anzeige des reCAPTCHA-Widgets verwenden möchten, müssen Sie diese Zeile am Anfang der Datei mit dem Formularelement, in das sich das reCAPTCHA-Widget befindet, angezeigt:

    use Captcha::reCAPTCHA;

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

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

Um das reCAPTCHA-Widget anzuzeigen, müssen Sie schließlich die folgende Zeile innerhalb des <form> Tag:

    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üssel.

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

Unten sehen Sie ein grundlegendes Verständnis dafür, wie Sie die reCAPTCHA-Antwort überprüfen 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

  • Design anpassen
  • Tipps und Richtlinien
  • Fehlerbehebung