In diesem Dokument erfahren Sie, wie Sie reCAPTCHA in WAF einbinden mit Cloudflare.
Um die Integration abzuschließen, müssen Sie eine oder mehrere Funktionen von reCAPTCHA for WAF, reCAPTCHA-Firewallrichtlinien erstellen, und in Cloudflare einbinden, indem Sie einen Cloudflare-Worker bereitstellen und konfigurieren serverlose Anwendung.
Hinweise
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Notieren Sie sich Ihre Google Cloud-Projekt-ID zur späteren Verwendung.Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
Enable the reCAPTCHA Enterprise API.
Erstellen Sie einen API-Schlüssel für die Authentifizierung:
Rufen Sie in der Google Cloud Console die Seite Anmeldedaten auf. - Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
- Notieren Sie sich den API-Schlüssel für später.
Planen Sie, wie Sie die reCAPTCHA-Funktionen für WAF zum Schutz Ihrer Website.
- Wählen Sie eine oder mehrere WAF-Funktionen aus, die am besten zu Ihrem Anwendungsfall passen.
- Identifizieren Sie die Seiten, die Sie schützen möchten.
- Wählen Sie die WAF-Funktionen aus, die Sie auf den identifizierten Seiten implementieren möchten.
- Ermitteln Sie die Bedingungen für die Verwaltung des Nutzerzugriffs.
- Informationen zu den Komponenten und Attributen von reCAPTCHA-Firewallrichtlinien, die Ihnen beim Erstellen von reCAPTCHA-Firewallrichtlinien helfen Beispiele finden Sie unter Beispiele für reCAPTCHA-Firewallrichtlinien.
Erstellen oder wählen Sie ein Cloudflare-Konto mit Cloudflare Worker-Funktionen aus.
Erstellen Sie eine Cloudflare-Website oder wählen Sie eine aus.
Laden Sie das reCAPTCHA-Paket für Cloudflare
recaptcha_cloudflare_client_0.0.2.tar.gz
herunter.
Features von reCAPTCHA für WAF implementieren
Je nach Ihren Anforderungen können Sie eine oder mehrere Funktionen von reCAPTCHA for WAF in einer einzelnen Anwendung verwenden.
Wenn Sie mehr als eine Funktion verwenden möchten, müssen Sie für jede dieser Funktionen einen reCAPTCHA-Schlüssel erstellen und in Ihrer Anwendung verwenden. Wenn Sie beispielsweise reCAPTCHA-Aktionstokens und reCAPTCHA-Aufgabenseite verwenden möchten, müssen Sie Erstellen Sie einen Aktionstoken-Schlüssel und einen Schlüssel für die Identitätsseite und verwenden Sie diese Schlüssel in Ihrem .
action-token
reCAPTCHA muss auf Ihren Webseiten ausgeführt werden, um Aktionstokens zu generieren.
Nachdem reCAPTCHA ein Aktionstoken generiert hat, hängen Sie das Token an einen vordefinierten Anfrageheader an, wo Sie Nutzeraktionen wie checkout
schützen müssen. Aktionstokens sind standardmäßig 30 Minuten lang gültig, können aber je nach Traffic variieren.
Sie müssen das Aktionstoken vor dem Ablauf des Tokens an einen vordefinierten Anfrageheader anhängen, damit Cloudflare die Tokenattribute auswerten kann.
So implementieren Sie ein reCAPTCHA-Aktionstoken:
Erstellen Sie einen Aktionstoken-Schlüssel für Ihre Website.
gcloud
Verwenden Sie den Befehl gcloud recaptcha keys create, um reCAPTCHA-Schlüssel zu erstellen.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- INTEGRATION_TYPE: Art der Integration.
Geben Sie
score
odercheckbox
an. - DOMAIN_NAME: Domains oder Subdomains von Websites, die verwendet werden dürfen
den Schlüssel.
Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie
--allow-all-domains
an, um die Domainbestätigung zu deaktivieren.Die Deaktivierung der Domainbestätigung stellt ein Sicherheitsrisiko dar, da Einschränkungen auf der Website, damit dein reCAPTCHA-Schlüssel aufgerufen und verwendet werden kann von irgendjemandem.
- WAF_FEATURE: Name der WAF-Funktion.
Geben Sie
action-token
an. - WAF_SERVICE: Name des
WAF-Dienstanbieter.
Geben Sie
cloudflare
für Cloudflare an.
Führen Sie den Befehl gcloud recaptcha keys create aus:
Linux, macOS oder Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.
REST
API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- INTEGRATION_TYPE: Art der Integration.
Geben Sie
score
odercheckbox
an. - DOMAIN_NAME: Domains oder Subdomains von Websites, die verwendet werden dürfen
den Schlüssel.
Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie
--allow-all-domains
an, um die Domainbestätigung zu deaktivieren.Die Deaktivierung der Domainbestätigung stellt ein Sicherheitsrisiko dar, da Einschränkungen auf der Website, damit dein reCAPTCHA-Schlüssel aufgerufen und verwendet werden kann von irgendjemandem.
- WAF_FEATURE: Name der WAF-Funktion.
Geben Sie
action-token
an. - WAF_SERVICE: Name des
WAF-Dienstanbieter.
Geben Sie für Cloudflare
cloudflare
an.
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "ACTION_TOKEN" } }
Notieren Sie sich den Schlüssel für das Aktionstoken für später.
-
Integrieren Sie reCAPTCHA JavaScript mit dem von Ihnen erstellten Schlüssel für Aktionstokens in Ihre Webseiten. Eine Anleitung finden Sie in dem Dokument zur
Integrationstyp des Aktionstokenschlüssels.
- Beim Integrationstyp
SCORE
Siehe Bewertungsbasierte Schlüssel in das Front-End integrieren. - Beim Integrationstyp
CHECKBOX
Weitere Informationen finden Sie unter reCAPTCHA-Widget auf dem Frontend rendern.
- Beim Integrationstyp
-
Nachdem Sie das Token von reCAPTCHA erhalten haben, hängen Sie es an
Einen vordefinierten Anfrageheader im folgenden Format:
X-Recaptcha-Token: value-of-your-action-token
Sie können Sprachen wie XHR, Ajax oder Fetch API verwenden, um das Token an einen vordefinierten Anfrage-Header anzuhängen.
Das folgende Beispielskript zeigt, wie
execute
geschützt wird Aktion ausführen und anhängen das Token in einen vordefinierten Anfrage-Header mithilfe von JavaScript + XHR:<script> src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_KEY"></script> <script> function onSuccess(action_token) { const xhr = new XMLHttpRequest(); xhr.open('GET','YOUR_URL', false); // Attach the action-token to the predefined request header xhr.setRequestHeader("X-Recaptcha-Token", action_token); xhr.send(null); } function onError(reason) { alert('Response promise rejected: ' + reason); grecaptcha.enterprise.ready(function () { document.getElementById("execute-button").onclick = () => { grecaptcha.enterprise.execute('ACTION_TOKEN_KEY', { }).then(onSuccess, onError); }; }); } </script>
session-token
Das reCAPTCHA-JavaScript legt nach der Bewertung ein reCAPTCHA-Sitzungstoken als Cookie im Browser des Endnutzers fest. Der Browser des Endnutzers hängt das Cookie an und aktualisiert das Cookie, solange das reCAPTCHA-JavaScript aktiv bleibt.
Um ein Sitzungstoken als Cookie bereitzustellen, installieren Sie auf unter mindestens einer Ihrer Webseiten, die der Endnutzer besucht, vor der Seite, die zu schützen. Wenn Sie beispielsweise die Zahlungsseite schützen möchten, installieren Sie Sitzungstokenschlüssel auf der Startseite oder Produktseite
Sie können entweder den reCAPTCHA-JavaScript-Code in Ihre Webseiten einfügen, indem Sie die
wrangler.toml
-Datei beim Installieren des reCAPTCHA-Pakets für
Cloudflare oder installieren
den Sitzungsschlüssel auf Ihren Webseiten. Wenn Sie das reCAPTCHA-JavaScript von Cloudflare einbinden, wird reCAPTCHA mit dem Sitzungs-Token-Schlüssel eingebunden, ohne dass die Schlüssel manuell auf Ihren Webseiten installiert werden müssen.
Sie können dieses Cookie verwenden, um nachfolgende Anfragen des Endnutzers zu schützen und in einer bestimmten Domain geladen wird. Sitzungstokens sind standardmäßig 30 Minuten lang gültig. Bleibt der Endnutzer jedoch auf der Seite, auf der Sie session-token, reCAPTCHA aktualisiert das Sitzungstoken regelmäßig, um dies zu verhindern dass sie ablaufen.
Installieren Sie Sitzungstokens auf jeder Seite, die durch reCAPTCHA geschützt werden muss. Wir empfehlen, jede Seite mit reCAPTCHA zu schützen und Google Cloud Armor-Regeln zu verwenden, um den Zugriff auf allen Seiten zu erzwingen, mit Ausnahme der ersten Seite, die Endnutzer durchsuchen.
Hier ist ein Beispiel für ein reCAPTCHA-Sitzungstoken:recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time
So implementieren Sie ein reCAPTCHA-Sitzungstoken:
- Erstellen Sie einen Sitzungstokenschlüssel für Ihre Website.
gcloud
Verwenden Sie den Befehl gcloud recaptcha keys create, um reCAPTCHA-Schlüssel zu erstellen.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- INTEGRATION_TYPE: Integrationstyp.
Geben Sie
score
an. - DOMAIN_NAME: Domains oder Subdomains von Websites, die verwendet werden dürfen
den Schlüssel.
Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie
--allow-all-domains
an, um die Domainbestätigung zu deaktivieren.Die Deaktivierung der Domainbestätigung stellt ein Sicherheitsrisiko dar, da Einschränkungen auf der Website, damit dein reCAPTCHA-Schlüssel aufgerufen und verwendet werden kann von irgendjemandem.
- WAF_FEATURE: Name des WAF-Features.
Geben Sie
session-token
an. - WAF_SERVICE: Name des
WAF-Dienstanbieter.
Geben Sie für Cloudflare
cloudflare
an.
Führen Sie den Befehl gcloud recaptcha keys create aus:
Linux, macOS oder Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.
REST
API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- INTEGRATION_TYPE: Integrationstyp.
Geben Sie
score
an. - DOMAIN_NAME: Domains oder Subdomains von Websites, die verwendet werden dürfen
den Schlüssel.
Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie
--allow-all-domains
an, um die Domainbestätigung zu deaktivieren.Die Deaktivierung der Domainbestätigung stellt ein Sicherheitsrisiko dar, da Einschränkungen auf der Website, damit dein reCAPTCHA-Schlüssel aufgerufen und verwendet werden kann von irgendjemandem.
- WAF_FEATURE: Name des WAF-Features.
Geben Sie
session-token
an. - WAF_SERVICE: Name des
WAF-Dienstanbieter.
Geben Sie für Cloudflare
cloudflare
an.
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "SESSION_TOKEN" } }
Notieren Sie sich Ihren Sitzungstokenschlüssel zur späteren Verwendung.
Wenn Sie das reCAPTCHA-JavaScript aus Cloudflare einschleusen möchten, überspringen Sie und konfigurieren Sie
wranger.toml
. -
Fügen Sie dem reCAPTCHA-JavaScript den Schlüssel für das Sitzungstoken und
waf=session
hinzu.Das folgende Beispielskript zeigt, wie ein Sitzungs-Token auf einer Webseite implementiert wird:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>reCAPTCHA WAF Session Token</title> <script src="https://www.google.com/recaptcha/enterprise.js?render=SESSION_TOKEN_KEY&waf=session" async defer></script> <body></body> </head> </html>
Challenge-Seite
Wenn Sie eine reCAPTCHA-Abrufseite implementieren, wird der Nutzer von reCAPTCHA zu einer Zwischenseite weitergeleitet, auf der ermittelt wird, ob ihm eine CAPTCHA-Herausforderung angezeigt werden muss. Daher sind CAPTCHA-Herausforderungen möglicherweise nicht für alle Nutzer sichtbar.
So implementieren Sie eine reCAPTCHA-Abfrageseite:
- Erstellen Sie einen Challenge-Seitenschlüssel für Ihre Website.
gcloud
Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud remarketingtcha keys create.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- INTEGRATION_TYPE: Integrationstyp.
Geben Sie
invisible
an. - DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen.
Geben Sie
--allow-all-domains
an. - WAF_FEATURE: Name des WAF-Features.
Geben Sie
challenge-page
an. - WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie für Cloudflare
cloudflare
an.
Führen Sie den gcloud reCAPTCHA-Schlüssel erstellen Befehl:
Linux, macOS oder Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.
REST
API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- INTEGRATION_TYPE: Integrationstyp.
Geben Sie
invisible
an. - DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen.
Geben Sie
--allow-all-domains
an. - WAF_FEATURE: Name des WAF-Features.
Geben Sie
challenge-page
an. - WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie für Cloudflare
cloudflare
an.
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "INVISIBLE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "CHALLENGE_PAGE" } }
Notieren Sie sich den Schlüssel für die Challenge-Seite zur späteren Verwendung.
- Wenn Sie Nutzer zur reCAPTCHA-Abfrageseite weiterleiten und ein reCAPTCHA-Token erhalten möchten, erstellen Sie eine Firewall-Richtlinie mit der Aktion
redirect
auf geschützten Seiten.
Express
Erstellen Sie zum Implementieren von reCAPTCHA Express einen Express-Taste.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
gcloud
Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud remarketingtcha keys create.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie für Cloudflare
cloudflare
an.
Führen Sie den gcloud reCAPTCHA-Schlüssel erstellen Befehl:
Linux, macOS oder Cloud Shell
gcloud recaptcha keys create \ --express \ --display-name=DISPLAY_NAME \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --express ` --display-name=DISPLAY_NAME ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --express ^ --display-name=DISPLAY_NAME ^ --waf-service=WAF_SERVICE
Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.
REST
API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
- WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie
cloudflare
für Cloudflare an.
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, }, "wafSettings": { "wafService": "cloudflare", } }
Notieren Sie sich Ihren Expressschlüssel zur späteren Verwendung.
Cloudflare einbinden
Wenn Sie die reCAPTCHA-Firewallrichtlinien verwenden möchten, müssen Sie eine serverlose Cloudflare Worker-Anwendung bereitstellen und konfigurieren.
Bevor Sie mit der Integration beginnen, gehen Sie so vor:
Erstellen Sie ein CLOUDFLARE_API_TOKEN und wählen Sie die Vorlage Cloudflare Workers bearbeiten aus. Notieren Sie sich das API-Token für die spätere Verwendung.
Erfassen Sie Ihre Cloudflare API-Konto-ID und notieren Sie sich diese für später.
reCAPTCHA-Paket für Cloudflare installieren
Laden Sie das reCAPTCHA-Paket für Cloudflare herunter und installieren Sie es:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Installieren Sie das Wrangler-Paket:
npm install -g wrangler
Laden Sie das reCAPTCHA-Paket für Cloudflare herunter:
wget --load-cookies /tmp/cookies.txt https://dl.google.com/recaptchaenterprise/cloudflare_client/releases/recaptcha_cloudflare_client_0.0.2.tar.gz -O recaptcha_cloudflare_client_0.0.2.tar.gz && rm -rf /tmp/cookies.txt
Entpacken Sie das reCAPTCHA-Paket für Cloudflare:
tar -xvzf recaptcha_cloudflare_client_0.0.2.tar.gz
Konfigurieren Sie in der Datei
wrangler.toml
die folgenden Variablen im vars-Abschnitt:- GCP_API_KEY: der Google Cloud API-Schlüssel, den Sie für Authentifizierung.
- GCP_PROJECT_NUMBER: Nummer Ihres Google Cloud-Projekts.
- RECAPTCHA_EXPRESS_SITE_KEY: der Expressschlüssel, falls Sie verwenden reCAPTCHA Express.
- RECAPTCHA_SESSION_SITE_KEY: der Sitzungstoken-Schlüssel, wenn Sie reCAPTCHA-Sitzungstokens verwenden.
- RECAPTCHA_ACTION_SITE_KEY: der Schlüssel des Aktionstokens, wenn Sie reCAPTCHA-Aktionstokens verwenden.
- RECAPTCHA_CHALLENGE_SITE_KEY: der Schlüssel für die Challenge-Seite, sofern reCAPTCHA-Abfrageseite.
- RECAPTCHA_JS_INSTALL: URLs der Seiten, auf denen der Cloudflare-Worker das reCAPTCHA-JavaScript mit dem Sitzungs-Token-Schlüssel installieren soll. Geben Sie die
Pfade als glob-Muster
und verwenden
;
als Trennzeichen. Diese Option ist nur für reCAPTCHA-Sitzungstokens verfügbar. RECAPTCHA_ASSESSMENT_CALL: die URLs der Seiten, auf denen die gewünschten Cloudflare-Worker die reCAPTCHA Enterprise API aufrufen, um die reCAPTCHA-Wert und führen Sie die in der Firewallrichtlinie konfigurierte Aktion aus. Geben Sie die Pfade als Globusmuster an und verwenden Sie
;
als Trennzeichen.
Stellen Sie die Anwendung bereit:
wrangler deploy
Cloudflare-Routen zur Worker-Anwendung konfigurieren
- Melden Sie sich im Cloudflare-Dashboard an und wählen Sie Ihr Konto aus.
- Klicken Sie im Navigationsmenü auf Worker und Pages und wählen Sie dann Ihre Worker-Anwendung aus.
- Klicken Sie auf den Tab Trigger und dann auf Route hinzufügen.
- Geben Sie im Dialogfeld Weg hinzufügen den Pfad Ihrer Webseite ein, die mit reCAPTCHA geschützt werden soll, wählen Sie die entsprechende Zone aus und klicken Sie auf Weg hinzufügen.
reCAPTCHA-Firewallrichtlinien erstellen
Sie müssen eine Firewallrichtlinie erstellen, die Regeln für jede Seite festlegt, die Sie auf Ihrer Website schützen möchten. Sie können Firewallrichtlinien mit einer oder mehreren reCAPTCHA for WAF-Funktionen erstellen.
Fügen Sie Ihrer reCAPTCHA-Firewallrichtlinie Regeln hinzu, die in der Reihenfolge der vorgesehenen
Priorität haben. Die erste Regel hat die höchste Priorität. Mit ReorderFirewallPoliciesRequest
können Sie die Priorität auch neu anordnen.
Wenn für eine eingehende Anfrage eine Richtlinienbedingung für den angegebenen Pfad erfüllt ist, implementiert Ihr WAF-Anbieter die definierte Aktion und die nachfolgenden Regeln werden nicht ausgewertet.
- Gehen Sie je nach ausgewählten Funktionen so vor:
- Geben Sie den Pfad an, den Sie schützen möchten.
- Geben Sie die Bedingungen an, unter denen der Zugriff zugelassen, umgeleitet oder blockiert werden soll.
- Priorisieren Sie die Regeln.
- Informationen zu den Komponenten von Firewallrichtlinien und ihren Attributen
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Wenn Sie die gcloud CLI überschreiben möchten, um auf die öffentliche Vorabversion der reCAPTCHA API zuzugreifen, führen Sie den folgenden Befehl aus:
gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
- Verwenden Sie zum Erstellen von reCAPTCHA-Firewallrichtlinien die gcloud
reCAPTCHA-Firewall-policies create erstellen:
Fügen Sie Ihrer reCAPTCHA-Firewallrichtlinie Regeln hinzu, Priorität haben. Sie müssen zuerst eine Regel mit der höchsten Priorität hinzufügen. Wenn für eine eingehende Anfrage eine Richtlinienbedingung für den angegebenen Pfad erfüllt ist, implementiert Ihr WAF-Anbieter die definierte Aktion und die nachfolgenden Regeln werden nicht ausgewertet. Standardmäßig ist der Zugriff erlaubt.
gcloud recaptcha firewall-policies create \ --actions=ACTION \ --condition=CONDITION \ --description=DESCRIPTION \ --path=PATH
Geben Sie folgende Werte an:
- ACTION: Die Aktionen, die Ihr WAF-Dienstanbieter ausführen muss
für die eingehende Anfrage aus. Er kann höchstens eine finale Aktion enthalten, d. h. eine Aktion, die eine Antwort erzwingt.
Wählen Sie eine der folgenden Optionen aus:
allow
: ermöglicht den Zugriff auf die angeforderte Seite. Dies ist eine Terminalaktion.block
: den Zugriff auf die angeforderte Seite verweigert. Diese Aktion ist endgültig.redirect
: leitet die eingehende Nutzeranfrage an die reCAPTCHA-Abfrageseite weiter. Diese Aktion ist endgültig.substitute
: stellt eine andere Seite als die angeforderte Seite bereit auf betrügerische Nutzeranfrage hin. Diese Aktion ist endgültig.set_header
: Legt einen benutzerdefinierten Header fest und ermöglicht, dass die eingehende Nutzeranfrage an den Back-End. Das Backend kann dann einen benutzerdefinierten Schutz auslösen. Dies ist keine abschließende Aktion.
- CONDITION: eine CEL (Common Expression Language) bedingten Ausdruck, der angibt, ob Die reCAPTCHA-Firewallrichtlinie gilt für eine eingehende Nutzeranfrage. Wenn dieses wird die Bedingung als "true" ausgewertet und der angeforderte Pfad stimmt mit dem Pfadmuster überein. Die zugehörigen Aktionen werden vom WAF-Dienstanbieter ausgeführt. Der Bedingungsstring wird bei der Erstellung auf korrekte CEL-Syntax geprüft. Weitere Informationen zur Sprachdefinition finden Sie unter CEL-Sprachdefinition.
- DESCRIPTION: Eine Beschreibung der Ziele der reCAPTCHA-Firewallrichtlinie. Die Beschreibung darf höchstens 256 UTF-8 sein Zeichen.
- PATH: der Pfad, für den die reCAPTCHA-Firewallrichtlinie gilt. Es muss als Glob-Muster angegeben werden. Weitere Informationen zu glob finden Sie in der Anleitung.
Nach erfolgreicher Ausführung des Befehls wird in etwa Folgendes ausgegeben: Folgendes angezeigt:
Created [100].
Im folgenden Beispiel wird eine reCAPTCHA-Firewallrichtlinie zum Blockieren erstellt Traffic-Targeting für
/example/page.html
, wenn der Wert unter 0,1 liegt.gcloud recaptcha firewall-policies create \ --description="example policy" \ --path="/example/page.html" \ --condition="recaptcha.score < 0.1" \ --actions="block"
- ACTION: Die Aktionen, die Ihr WAF-Dienstanbieter ausführen muss
für die eingehende Anfrage aus. Er kann höchstens eine finale Aktion enthalten, d. h. eine Aktion, die eine Antwort erzwingt.
Wählen Sie eine der folgenden Optionen aus: