En este documento, se muestra cómo integrar reCAPTCHA para WAF con Cloudflare.
Para completar la integración, debes implementar una o más funciones de reCAPTCHA para WAF, crear políticas de firewall de reCAPTCHA y la integración en Cloudflare implementando y configurando un Cloudflare Worker sin servidores.
Antes de comenzar
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Registra el ID del proyecto de Google Cloud para usarlo más adelante.Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
Enable the reCAPTCHA Enterprise API.
Crea una clave de API para la autenticación:
En la consola de Google Cloud, ve a la página Credenciales. - Haz clic en Crear credenciales y selecciona Clave de API.
- Registra la clave de API para usarla más adelante.
Planifica cómo quieres implementar las funciones de reCAPTCHA para WAF para proteger tu sitio web.
- Elige una o más funciones de WAF que mejor se adapten a tu caso de uso.
- Identifica las páginas que deseas proteger.
- Elige el tipo de funciones de WAF que quieres implementar en la las páginas identificadas.
- Identifica las condiciones para administrar el acceso de los usuarios.
- Comprende los componentes de la política de firewall de reCAPTCHA y sus atributos que te ayudan a crear políticas de firewall de reCAPTCHA. Para ver ejemplos, consulta Ejemplos de políticas de firewall de reCAPTCHA.
Crea o elige una cuenta de Cloudflare con funciones de Cloudflare Worker.
Crea o elige un sitio web de Cloudflare.
Descarga el paquete de reCAPTCHA para Cloudflare
recaptcha_cloudflare_client_0.0.2.tar.gz
.
Implementar funciones de reCAPTCHA para WAF
Según tus requisitos, puedes usar una o más funciones de reCAPTCHA para WAF en una sola aplicación.
Si quieres usar más de una función, debes crear una clave de reCAPTCHA para cada una de ellas y usarlas en tu aplicación. Por ejemplo, si quieres usar los tokens de acción y la página de desafío de reCAPTCHA, debes crear una clave de token de acción y una clave de página de desafío, y usarlas en tu aplicación.
action-token
Debes tener reCAPTCHA en ejecución en tus páginas web para generar tokens de acción.
Después de que reCAPTCHA genera un token de acción, debes adjuntarlo a un token de acción
encabezado de solicitud siempre que necesites proteger las acciones del usuario, como checkout
. De forma predeterminada, los tokens de acción son válidos durante 30 minutos, pero pueden variar según el tráfico.
Debes adjuntar el token de acción a un encabezado de solicitud predefinido antes de que venza, de modo que
Cloudflare pueda evaluar los atributos del token.
Para implementar un token de acción de reCAPTCHA, haz lo siguiente:
Crea una clave de token de acción para tu sitio web.
gcloud
Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- INTEGRATION_TYPE: Tipo de integración.
Especifica
score
ocheckbox
. - DOMAIN_NAME: Dominios o subdominios de sitios web que tienen permitido el uso
la clave.
Especifica varios dominios en una lista separada por comas. Opcional: Especifica
--allow-all-domains
para inhabilitar la verificación del dominio.Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, para que se pueda acceder a tu clave de reCAPTCHA y usarla por cualquier persona.
- WAF_FEATURE: Es el nombre de la función de WAF.
Especifica
action-token
. - WAF_SERVICE: Es el nombre del proveedor de servicios de WAF.
Especifica
cloudflare
para Cloudflare.
Ejecuta el crea claves de recaptcha de gcloud :
Linux, macOS o 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
La respuesta contiene la clave de reCAPTCHA recién creada.
REST
Para obtener información de referencia de la API sobre los tipos de claves y los tipos de integración, consulta Clave y Tipo de integración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- INTEGRATION_TYPE: Tipo de integración.
Especifica
score
ocheckbox
. - DOMAIN_NAME: Dominios o subdominios de sitios web que tienen permitido el uso
la clave.
Especifica varios dominios en una lista separada por comas. Opcional: Especifica
--allow-all-domains
para inhabilitar la verificación del dominio.Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, para que se pueda acceder a tu clave de reCAPTCHA y usarla por cualquier persona.
- WAF_FEATURE: Es el nombre de la función de WAF.
Especifica
action-token
. - WAF_SERVICE: Nombre del
Proveedor de servicios de WAF.
Especifica
cloudflare
para cloudflare.
Método HTTP y URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando: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
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$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 ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "ACTION_TOKEN" } }
Registra la clave de token de acción para usarla más adelante.
-
Integra el código JavaScript de reCAPTCHA en tus páginas web con la clave de token de acción que creaste. Para obtener instrucciones, consulta el documento que corresponde al tipo de integración de tu clave de token de acción.
- Para el tipo de integración
SCORE
, consulta Integra claves basadas en puntuaciones con el frontend. - Para el tipo de integración
CHECKBOX
, consulta Cómo renderizar el widget de reCAPTCHA en el frontend.
- Para el tipo de integración
-
Después de recibir el token de reCAPTCHA, adjúntalo a
un encabezado de solicitud predefinido con el siguiente formato:
X-Recaptcha-Token: value-of-your-action-token
Puedes usar lenguajes como XHR, Ajax o la API de Fetch para adjuntar el token a un encabezado de solicitud predefinido.
En la siguiente secuencia de comandos de ejemplo, se muestra cómo proteger
execute
acción y adjuntar el token a un encabezado de solicitud predefinido con 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
JavaScript de reCAPTCHA establece un token de sesión de reCAPTCHA como una cookie en navegador del usuario final después de la evaluación. El navegador del usuario final adjunta el cookie y la actualiza, siempre y cuando JavaScript de reCAPTCHA sigue activo.
Para proporcionar un token de sesión como una cookie, instala una clave de token de sesión en al menos una de tus páginas web que el usuario final navegue antes de la página que se debe proteger. Por ejemplo, si quieres proteger la página de confirmación de la compra, instala una clave de token de sesión en la página principal o en la página del producto.
Puedes incluir el JavaScript de reCAPTCHA en tus páginas web configurando el
wrangler.toml
cuando se instala el paquete de reCAPTCHA para
Cloudflare o instala
la clave de sesión en tus páginas web. Si incluyes el código JavaScript de reCAPTCHA de
Cloudflare, se integrará reCAPTCHA con la clave de token de sesión
sin necesidad de instalar las claves de forma manual en tus páginas web.
Puedes usar esta cookie para proteger las solicitudes posteriores del usuario final y las cargas de página en un dominio específico. Los tokens de sesión son válidos durante 30 minutos de forma predeterminada. Sin embargo, si el usuario final se queda en la página en la que implementaste el session-token, reCAPTCHA actualiza el token de sesión de forma periódica para evitarlo que caduquen.
Instala tokens de sesión en cada página que deba protegerse con reCAPTCHA. Te recomendamos que protejas todas las páginas con reCAPTCHA y que uses las reglas de Google Cloud Armor para aplicar el acceso en todas las páginas, excepto en la primera que los usuarios finales exploren.
El siguiente es un token de sesión de reCAPTCHA de muestra:recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time
Para implementar un token de sesión de reCAPTCHA, haz lo siguiente:
- Crea una clave de token de sesión para tu sitio web.
gcloud
Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- INTEGRATION_TYPE: Tipo de integración.
Especifica
score
. - DOMAIN_NAME: Dominios o subdominios de sitios web autorizados para usar la clave.
Especifica varios dominios en una lista separada por comas. Opcional: Especifica
--allow-all-domains
para inhabilitar la verificación del dominio.Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, para que se pueda acceder a tu clave de reCAPTCHA y usarla por cualquier persona.
- WAF_FEATURE: Es el nombre de la función de WAF.
Especifica
session-token
. - WAF_SERVICE: Nombre del
Proveedor de servicios de WAF.
Especifica
cloudflare
para Cloudflare.
Ejecuta el crea claves de recaptcha de gcloud :
Linux, macOS o 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
La respuesta contiene la clave de reCAPTCHA recién creada.
REST
Para obtener información de referencia de la API sobre los tipos de claves y los tipos de integración, consulta Clave y Tipo de integración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- INTEGRATION_TYPE: Tipo de integración.
Especifica
score
. - DOMAIN_NAME: Dominios o subdominios de sitios web autorizados para usar la clave.
Especifica varios dominios en una lista separada por comas. Opcional: Especifica
--allow-all-domains
para inhabilitar la verificación del dominio.Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, para que se pueda acceder a tu clave de reCAPTCHA y usarla por cualquier persona.
- WAF_FEATURE: Es el nombre de la función de WAF.
Especifica
session-token
. - WAF_SERVICE: Nombre del
Proveedor de servicios de WAF.
Especifica
cloudflare
para cloudflare.
Método HTTP y URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando: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
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$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 ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "SESSION_TOKEN" } }
Registra la clave de token de sesión para usarla más adelante.
Si deseas insertar el código JavaScript de reCAPTCHA desde Cloudflare, omite el siguiente paso y configura
wranger.toml
. -
Agrega la clave de token de sesión y
waf=session
al código JavaScript de reCAPTCHA.En la siguiente secuencia de comandos de ejemplo, se muestra cómo implementar un token de sesión en una página web:
<!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-page
When you implement a reCAPTCHA challenge page, reCAPTCHA redirects to an interstitial page where it determines if it's necessary to show a CAPTCHA challenge to a user. Therefore, CAPTCHA challenges might not be visible to all users.
To implement a reCAPTCHA challenge page, do the following:
- Create a challenge-page key for your website.
gcloud
To create reCAPTCHA keys, use the gcloud recaptcha keys create command.
Before using any of the command data below, make the following replacements:
- DISPLAY_NAME: Name for the key. Typically a site name.
- INTEGRATION_TYPE: Type of integration.
Specify
invisible
. - DOMAIN_NAME: Domains or subdomains of websites allowed to use
the key.
Specify
--allow-all-domains
. - WAF_FEATURE: Name of the WAF feature.
Specify
challenge-page
. - WAF_SERVICE: Name of the
WAF service provider.
Specify
cloudflare
for cloudflare.
Execute the gcloud recaptcha keys create command:
Linux, macOS, or 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
La respuesta contiene la clave de reCAPTCHA recién creada.
REST
Para obtener información de referencia de la API sobre los tipos de clave y los tipos de integración, consulta Clave y el Tipo de integración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- INTEGRATION_TYPE: Tipo de integración.
Especifica
invisible
. - DOMAIN_NAME: Dominios o subdominios de sitios web que tienen permitido el uso
la clave.
Especifica
--allow-all-domains
. - WAF_FEATURE: Es el nombre de la función de WAF.
Especifica
challenge-page
. - WAF_SERVICE: Es el nombre del proveedor de servicios de WAF.
Especifica
cloudflare
para cloudflare.
Método HTTP y URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando: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
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$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 ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "INVISIBLE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "CHALLENGE_PAGE" } }
Registra la clave de la página de desafío para usarla más adelante.
- Redireccionar a los usuarios a la página del desafío de reCAPTCHA y recibir un reCAPTCHA
token, crea una política de firewall con el valor
redirect
tomar medidas en páginas protegidas. -
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
Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- WAF_SERVICE: Nombre del
Proveedor de servicios de WAF.
Especifica
cloudflare
para Cloudflare.
Ejecuta el comando gcloud recaptcha keys create:
Linux, macOS o 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
La respuesta contiene la clave de reCAPTCHA recién creada.
REST
Para obtener información de referencia de la API sobre los tipos de claves y los tipos de integración, consulta Clave y Tipo de integración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
- WAF_SERVICE: Nombre del
Proveedor de servicios de WAF.
Especifica
cloudflare
para Cloudflare.
Método HTTP y URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando: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
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$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 ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, }, "wafSettings": { "wafService": "cloudflare", } }
Registra tu clave exprés para usarla más adelante.
Crea una CLOUDFLARE_API_TOKEN y elige la plantilla Editar trabajadores de Cloudflare. Registra el token de API para usarlo más adelante.
Obtén el ID de la cuenta de la API de Cloudflare y regístralo para usarlo más adelante.
Descarga e instala el paquete de reCAPTCHA para Cloudflare:
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.
Instala el paquete wrangler:
npm install -g wrangler
Descarga el paquete de reCAPTCHA para Cloudflare:
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
Descomprime el paquete de reCAPTCHA para Cloudflare:
tar -xvzf recaptcha_cloudflare_client_0.0.2.tar.gz
En el archivo
wrangler.toml
, configura las siguientes variables del archivo Sección vars:- GCP_API_KEY: La clave de API de Google Cloud que creaste autenticación.
- GCP_PROJECT_NUMBER: Es el número de tu proyecto de Google Cloud.
- RECAPTCHA_EXPRESS_SITE_KEY: La clave exprés si usas reCAPTCHA Express
- RECAPTCHA_SESSION_SITE_KEY: La clave de token de sesión con el token de sesión de reCAPTCHA.
- RECAPTCHA_ACTION_SITE_KEY: Es la clave de token de acción si usas el token de acción de reCAPTCHA.
- RECAPTCHA_CHALLENGE_SITE_KEY: La clave de la página de desafío si tienes lo siguiente: con la página de desafío de reCAPTCHA.
- RECAPTCHA_JS_INSTALL: URL de las páginas en las que deseas
Trabajador de Cloudflare para instalar
reCAPTCHA de JavaScript con la clave de token de sesión Especifica el
rutas de acceso como un patrón glob
y usa
;
como delimitador. Esta opción solo está disponible para el token de sesión de reCAPTCHA. RECAPTCHA_ASSESSMENT_CALL: URL de las páginas en las que deseas Un trabajador de Cloudflare debe llamar a la API de reCAPTCHA Enterprise para evaluar la Puntuación de reCAPTCHA y realizar la acción configurada en la política de firewall. Especifica el rutas de acceso como un patrón glob y usa
;
como delimitador.
Implementa la aplicación:
wrangler deploy
- Accede al panel de Cloudflare y selecciona tu cuenta.
- En el menú de navegación, haz clic en Workers & Pages y, luego, selecciona tu aplicación trabajadora.
- Haz clic en la pestaña Activadores y, luego, en Agregar ruta.
- En el diálogo Agregar ruta, ingresa la ruta de tu página web que debe protegerse con reCAPTCHA, selecciona la zona adecuada y haz clic en Agregar ruta.
- Según las funciones que hayas elegido, haz lo siguiente:
- Identifica la ruta que deseas proteger.
- Identifica las condiciones para permitir, redireccionar o bloquear el acceso.
- Establece prioridades para las reglas.
- Comprende los componentes de la política de firewall y sus atributos.
-
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.
- Para anular gcloud CLI y acceder a la versión preliminar pública de la API de reCAPTCHA, ejecuta el siguiente comando:
gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
- Para crear políticas de firewall de reCAPTCHA, usa el comando de gcloud
Comando recaptcha firewall-policies create:
En tu política de firewall de reCAPTCHA, agrega reglas en el orden previsto prioridad. Primero, debes agregar una regla con la prioridad más alta. En el caso de una solicitud entrante, cuando una condición de política coincide con la ruta de acceso especificada, tu proveedor de servicios de WAF implementa la acción definida y no se evalúan las reglas posteriores. La regla predeterminada es permitir el acceso.
gcloud recaptcha firewall-policies create \ --actions=ACTION \ --condition=CONDITION \ --description=DESCRIPTION \ --path=PATH
Ingresa los siguientes valores:
- ACTION: Son las acciones que debe realizar tu proveedor de servicios de WAF.
para la solicitud entrante. Puede contener como máximo una acción terminal, que
es una acción que fuerza una respuesta.
Especifica una de las siguientes acciones:
allow
: Permite el acceso a la página solicitada. Esta es una acción terminal.block
: Rechaza el acceso a la página solicitada. Esta es una acción de terminal.redirect
: Redirecciona la solicitud entrante del usuario a la página de desafío de reCAPTCHA. Esta es una acción de terminal.substitute
: Publica una página diferente a la página solicitada. a una solicitud fraudulenta de usuario. Esta es una acción de terminal.set_header
: Establece un encabezado personalizado y permite que la solicitud entrante del usuario continúe al backend. Luego, el backend puede activar una protección personalizada. Esta acción no es terminal.
- CONDITION: Es una expresión condicional de CEL (Common Expression Language) que especifica si la política de firewall de reCAPTCHA se aplica a una solicitud entrante del usuario. Si esta condition se evalúa como true y la ruta solicitada coincide con el patrón de ruta de acceso, el proveedor de servicios de WAF ejecuta las acciones asociadas. El se verifica la precisión de la sintaxis de CEL en el momento de la creación de la cadena de condición. Para ver más información sobre la definición del lenguaje, Definición del lenguaje CEL.
- DESCRIPTION: Una descripción de lo que el firewall de reCAPTCHA que nuestra política pretende lograr. La descripción debe tener como máximo 256 caracteres UTF-8.
- PATH: Es la ruta para la que se aplica la política de firewall de reCAPTCHA. Debe especificarse como un patrón glob. Para obtener más información sobre glob, consulta la página del manual.
Después de que se ejecute correctamente el comando, se mostrará un resultado similar al siguiente:
Created [100].
En el siguiente ejemplo, se crea una política de firewall de reCAPTCHA para bloquear la segmentación de tráfico para
/example/page.html
cuando la puntuación sea inferior a 0.1.gcloud recaptcha firewall-policies create \ --description="example policy" \ --path="/example/page.html" \ --condition="recaptcha.score < 0.1" \ --actions="block"
- ACTION: Son las acciones que debe realizar tu proveedor de servicios de WAF.
para la solicitud entrante. Puede contener como máximo una acción terminal, que
es una acción que fuerza una respuesta.
Especifica una de las siguientes acciones:
express
Para implementar reCAPTCHA Express, crea un exprés.
Realiza la integración con Cloudflare
Para usar las políticas de firewall de reCAPTCHA, debes implementar y configurar una Trabajador sin servidores de Cloudflare.
Antes de comenzar el proceso de integración, haz lo siguiente:
Instala el paquete de reCAPTCHA para Cloudflare
Configura las rutas de Cloudflare para la aplicación de trabajador
Crea políticas de firewall de reCAPTCHA
Debes crear una política de firewall que especifique reglas para cada página que desees proteger en tu sitio web. Puedes crear políticas de firewall con una o más funciones de reCAPTCHA para WAF.
En tu política de firewall de reCAPTCHA, agrega reglas en el orden de la prioridad prevista. La primera regla tiene el orden más alto. También puedes cambiar el orden
prioridad mediante ReorderFirewallPoliciesRequest
.
En el caso de una solicitud entrante, cuando una condición de política coincide con la ruta de acceso especificada, el proveedor de servicios de WAF implementa la acción definida y no se evalúan las reglas posteriores.
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-10-12 (UTC)