Beispiele für die Einbindung in Google Cloud Armor

In diesem Dokument wird anhand von Beispielen gezeigt, wie die Features von reCAPTCHA Enterprise for WAF für Google Cloud Armor implementiert werden.

Sie können ein oder mehrere Features von reCAPTCHA Enterprise for WAF in einer einzigen Anwendung verwenden.

Wenn Sie mehr als ein Feature verwenden möchten, müssen Sie für jedes dieser Features einen reCAPTCHA-Schlüssel erstellen und in Ihrer Anwendung verwenden. Wenn Sie beispielsweise reCAPTCHA-Aktionstokens und eine reCAPTCHA-Abfrageseite verwenden möchten, müssen Sie einen Schlüssel für ein Aktionstoken und einen Schlüssel für die Herausforderungsseite erstellen und in Ihrer Anwendung verwenden.

Beispiel 1: reCAPTCHA-Sitzungstokens und reCAPTCHA-Abfrageseite verwenden

Sie können ein reCAPTCHA-Sitzungstoken auf Seiten hinzufügen, auf die ein Nutzer möglicherweise zugreift, sodass das Cookie regelmäßig aktualisiert wird, z. B. eine Anmeldeseite. Konfigurieren Sie eine Google Cloud Armor-Sicherheitsrichtlinienregel, um die Anfrage an eine reCAPTCHA-Abfrageseite umzuleiten, wenn die Punktzahl niedrig ist.

Die folgende Abbildung zeigt einen Workflow, der Features der reCAPTCHA-Sitzungstoken- und reCAPTCHA-Herausforderung verwendet:

Beispiel 2: reCAPTCHA-Aktionstokens und reCAPTCHA-Abfrageseite verwenden

Du kannst ein reCAPTCHA-Aktionstoken hinzufügen, um eine Nutzeraktion wie den Bezahlvorgang zu schützen. Konfigurieren Sie eine Google Cloud Armor-Sicherheitsrichtlinienregel, um die Anfrage unter einer der folgenden Bedingungen an eine reCAPTCHA-Abfrageseite weiterzuleiten:

  • Die Punktzahl ist niedrig.
  • Das Attribut action_name des Aktionstokens stimmt nicht mit der geschützten Nutzeraktion überein.

Die folgende Abbildung zeigt einen Workflow, der Features der reCAPTCHA-Aktions- und reCAPTCHA-Herausforderung verwendet:

Das folgende Beispielskript zeigt, wie Sie ein reCAPTCHA-Aktionstoken verwenden und zu einer reCAPTCHA-Abfrageseite mit dem Aktionstoken als Header weiterleiten:

   <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    <script>
     function onSuccess(token) {
       const xhr = new XMLHttpRequest();
       xhr.open('GET','http://www.example.com/checkout', false);
       xhr.setRequestHeader("X-Recaptcha-Token", token);
       xhr.onreadystatechange = function() {
         // Make sure that the request is finished and response is ready with 200
         if (this.readyState == 4 && this.status == 200) {
           // Display the response, it could be a reCAPTCHA challenge
           // page based on your Google Cloud Armor security rule settings.
            document.open();
            document.write(xhr.responseText);
            document.close();

         }
       };
       xhr.send(null);
     }

     grecaptcha.enterprise.ready(function () {
       document.getElementById("execute-button").onclick = () => {
         grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
         }).then(onSuccess, onError);
       };
     });
    </script>

Nächste Schritte