RobotCaptcha - Dokumentation

Einleitung

Vielen Dank für Ihr Interesse an RobotCaptcha. Unser Captcha-Prüfverfahren wird via JavaScript-Datei eingebunden.
Verwenden Sie hierzu ein ein Script-Tag innerhalb des <head> Bereiches. Für die Validierung und Unterscheidung zwischen Mensch und Maschine, werden unteranderem mehrere Parameter aus Ihrem Browser und einige Eigenschaften des Nutzerverhaltens an unseren Servern übertragen. Für weiterführende Informationen, konsultieren Sie bitte unsere Datenschutzerklärung oder die AGB's.

Das Prüfverfahren von RobotCaptcha ist in eine mehrstufige Überprüfung bestehend aus clientseitiger und serverseitiger Validierung. Nach der der Einbindung via Javascript auf der Seite auf der das Captcha angezeigt werden soll, findet eine Vorüberprüfung statt.
Fällt das Ergebnis dieser Überprüfung positiv aus (keine automatisierter Spam), signalisiert das Captcha dies mit einem grünen Hintergrund. Die clientseitige Überprüfung ist beendet.

Fällt die Vorüberprüfung negativ aus, müssen aus 9 zufällig gewählten Bildern, abhängig der vorgegebenen Kategorie die richtigen Grafiken ausgewäht werden.

Nach dem erfolgreichen Lösen des Captchas, kann das Formular an Ihren Server zur Eingabevalidierung abgesendet werden. Hierbei wird automatisch ein Parameter des eingebundenen Captchas mit übertragen. Dieser muss für eine weitere Validierung gegen die Benutzung von Konsolenanwendungen ein weiters mal an unseren Server übermittelt werden.
RobotCaptcha nach der Einbindung
RobotCaptcha nach der Einbindung
RobotCaptcha nach der Einbindung

Einschränkungen

- RobotCaptcha kann auf jeder Seite nur 1x eingebunden werden.
- InternetExplorer wird nicht unterstützt. Siehe Abschnitt Kompatibilität

Kompatibilität der Browser

  • Google Chrome

    Google Chrome Icon
  • Samsung Internet

    Samsung Internet Mobilebrowser
  • Microsoft Edge

    Microsoft Edge Browser
  • Firefox

    Firefox Browser
  • Opera Browser

    Opera Browser - Android
  • Duckduckgo

    Duckduckgo Browser
  • Safari

    Safari

Einbindung

Wir empfehlen Ihnen, die einzubindene JavaScript-Datei direkt von unseren Servern zu benutzen. Verwenden Sie hierzu den Path: https://www.robotcaptcha.net/external/0.99/rc_v_0.99_min.js. Für eine gleichbleibende Sicherheit wird auch empfohlen, immer die neueste Version von RobotCaptcha zu verwenden.

Das Captcha im Frontend, ist eine von mehreren Stufen der Validierung. Dies schützt Ihren Server vor automatisch ausgefüllten und versendeten Formularen.
  • Step 1 - Implementation:

    [CO]html[CC]
    [TAB][CO]head[CC]
    [TAB][TAB][CO]script src="https://www.robotcaptcha.net/ex/v_0.99/rc_v_0.99_min.js"[CC][CO]/script[CC]
    [TAB][CO]/head[CC]
    [TAB][CO]body[CC]
    [TAB][TAB]...
    [TAB][CO]/body[CC]
    [CO]/html[CC]
  • Wir empfehlen, ein NoScript-Tag "<noscript>...</noscript>" auf allen Seiten auf denen das Captcha eingebunden wurde zu verwenden.
  • Step 2 - Formbezeichnung:

    Fügen Sie der Form eine ID oder eine Class hinzu, mit deren Hilfe das Captcha platziert werden kann.
[CO]form id="form_login" action="" method="post"[CC]...[CO]/form[CC] [CO]form class="form_login" action="" method="post"[CC]...[CO]/form[CC]

Step 3 - Aktivierung

  • Mit dem Befehl rc.init() und 2 Parameter, wird das Captcha aktiviert. Im 1. Parameter müssen Sie die ID oder den Klassenamen benennen.
    Besitzt die Form eine ID, muss dem 1. Parameter ein "#" bei einer Klasse ein "." vorangestellt werden (Siehe Beispielcode)
  • Der 2. Parameter, beinhaltet Ihren PublicKey der Ihnen nach der Anmeldung und Erstellung eines Captchas zugewiesen wird.
  • rc.init() muss nach der Position an der sich die Form befindet ausgeführt werden.
[CO]script[CC]
[TAB]// Form with ID
[TAB]rc.init("#form_login" , "YOUR_PUBLICKEY");
[TAB]// Form with Classname
[TAB]rc.init(".form_login" , "YOUR_PUBLICKEY");
[CO]/script[CC]

Step 3.1 - Mögliche Fehler

  • Nach der Einbindung von RobotCaptcha findet eine erste Vorüberprüfung statt. Bei der Vorüberprüfung und bei der nachträglichen Validierung können folgende Situationen entstehen:
    • noFormName: In rc.init() wurde keine "ID" oder "Klassenname" übergeben.
      - Bitte überprüfen Sie die beiden Parameter in rc.init()
    • incompatible: Dieser Browser unterstützt einige der verwendeten Funktionen nicht.
      - Bitte wechseln Sie auf einen anderen Browser. (Chrome, Edge, Firefox)
    • noCanvasSupported: Dieser Browser unterstützt kein HTML5-Canvas .
      - Bitte wechseln Sie auf einen anderen Browser. (Chrome, Edge, Firefox)
    • timeOut Nach 10 Sekunden konnte keine Verbindung aufgebaut werden.
      -Bitte überprüfen Sie Ihre Internetverbindung
    • srvError: Der Server konnte nicht erreicht werden oder die Antwort beinhaltet einen Fehler
      -Bitte kontaktieren Sie den Support
    • keyNotFound: Es wurde kein gültiger PublicKey bei rc.init() übergeben (Key fehlt, oder ist nicht 16 Zeichen lang).
      - Überprüfen Sie den in rc.init() übergebenen PuplicKey
    • CaptchaSiteError: Der PublicKey gehört nicht zu der hinterlegten Seite
      - Überprüfen Sie den in rc.init() übergebenen PuplicKey< oder die im Adminbereich hinterlegte URL.
    • Serverhandshake: Es gab ein Problem mit der Auswertung auf unseren Servern
      - Bitte kontaktieren Sie den Support
    • Serverhandshake2: Der Inhalt des Useragent / Browserheader ist fehlerhaft
      - Bitte verwenden Sie einen anderen Browser
    • max_c_reload: Die max. Anzahl für das Neuladen des Captchas wurde erreicht.
    • max_c_timeout: Die max. Anzahl für das automatische Neuladen (30Sek.) des Captchas wurde erreicht.

Serverseitige Überprüfung

  • Nach dem erfolgreichen lösen des Captchas, kann der Inhalt der Form an Ihren Server übermittelt werden. Automatisch wird ein zusätlicher Parameter (Wert) aus dem Captcha mit übertragen. Dieser Parameter kann serverseitig unter Verwendung von PHP mit $_POST["rc_captcha_human"] angesprochen und auf Existenz überprüft werden.
  • Übermitteln Sie den Wert von $_POST["rc_captcha_human"] wie im untenstehenden Beispiel an RobotCaptcha.net.
    Die Antwortinformationen die von unseren Servern zurück gesendet werden, müssen im Anschluss mit dem Befehl json_decode umgewandelt werden.

    Innerhalb des JSON-Objekt können Sie folgende Werte auslesen:
    • state -> Status der Anfrage ("ok" für Serverrequest erfolgreich) : String
    • validated -> Status der Validierung (true | false) : Boolean
    • pk -> Ihr PrivateKey : String
    • errorCode -> Fehlernummer : Integer | Number
    • errorText -> Fehlerbeschreibung (vereinfacht): String

Die Validierung auf Ihrem Server via PHP, ist eine weitere Sicherheitsmaßnahme der mehrstufigen Überprüfung.
Der erneute Abgleich mit unseren Servern schützt Ihren Server vor Spam, der durch Dos-Programme bzw. Konsolentools automatisiert versendet wird.
[CO]?php
[TAB]isset($_POST["rc_captcha_human"]) {

[TAB][TAB]$captcha = htmlspecialchars($_POST["rc_captcha_human"] , ENT_QUOTES);
[TAB][TAB]$request = file_get_contents( "www.robotcaptcha.net/callserver.php?t=check&id={$captcha}" );
[TAB][TAB]$request = json_decode( $request );

[TAB][TAB]if($request->state == "ok" && $request->validated == true) {
[TAB][TAB][TAB]$state = "success";
[TAB][TAB]} else {
[TAB][TAB][TAB]$state = $request->errorText;
[TAB][TAB]}
[TAB]}
?[CC]