如需将可信 IP 地址从 reCAPTCHA 强制执行中排除,您可以为与您的网站关联的 reCAPTCHA 密钥创建许可名单,并将 IP 地址和子网添加到该许可名单。
您还可以从许可名单中移除 IP 地址和子网,并列出添加到许可名单的 IP 地址和子网。
准备工作
收集您要添加到许可名单的所有 IP 地址和子网。
确定要从许可名单中移除的 IP 地址和子网。
确保您具有以下 Identity and Access Management (IAM) 角色:reCAPTCHA Enterprise Admin (
roles/recaptchaenterprise.admin
)。
将 IP 地址或子网添加到许可名单
将 IP 地址或子网添加到许可名单后,reCAPTCHA 会跳过验证,并始终为来自该 IP 地址或子网的请求分配 0.9
分数。您最多可以向许可名单中添加 100 个 IP 地址和子网。
gcloud
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.
在使用下面的命令数据之前,请先进行以下替换:
- KEY:与您的网站关联的 reCAPTCHA 密钥。
- IP_ADDRESS_OR_SUBNET:需要添加到许可名单中的 IP 地址或子网。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys add-ip-override KEY \ --ip=IP_ADDRESS_OR_SUBNET \ --override=ALLOW
Windows (PowerShell)
gcloud recaptcha keys add-ip-override KEY ` --ip=IP_ADDRESS_OR_SUBNET ` --override=ALLOW
Windows (cmd.exe)
gcloud recaptcha keys add-ip-override KEY ^ --ip=IP_ADDRESS_OR_SUBNET ^ --override=ALLOW
REST
在使用任何请求数据之前,请先进行以下替换:
- KEY:与您的网站关联的 reCAPTCHA 密钥。
- IP_ADDRESS_OR_SUBNET:需要添加到许可名单中的 IP 地址或子网。
- PROJECT_ID:您的 Google Cloud 项目 ID
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/KEY:addIpOverride
请求 JSON 正文:
{ "ip_override_data": { "ip": "IP_ADDRESS_OR_SUBNET", "override_type": "ALLOW" } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
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/KEY:addIpOverride"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$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/KEY:addIpOverride" | Select-Object -Expand Content
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
将 IP 地址或子网添加到许可名单后,更改会在几分钟内生效。
从许可名单中移除 IP 地址或子网
gcloud
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.
在使用下面的命令数据之前,请先进行以下替换:
- KEY:与您的网站关联的 reCAPTCHA 密钥。
- IP_ADDRESS_OR_SUBNET:需要添加到许可名单中的 IP 地址或子网。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys remove-ip-override KEY \ --ip=IP_ADDRESS_OR_SUBNET \ --override=ALLOW
Windows (PowerShell)
gcloud recaptcha keys remove-ip-override KEY ` --ip=IP_ADDRESS_OR_SUBNET ` --override=ALLOW
Windows (cmd.exe)
gcloud recaptcha keys remove-ip-override KEY ^ --ip=IP_ADDRESS_OR_SUBNET ^ --override=ALLOW
REST
在使用任何请求数据之前,请先进行以下替换:
- KEY:与您的网站关联的 reCAPTCHA 密钥。
- IP_ADDRESS_OR_SUBNET:需要添加到许可名单中的 IP 地址或子网。
- PROJECT_ID:您的 Google Cloud 项目 ID
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/KEY:removeIpOverride
请求 JSON 正文:
{ "ip_override_data": { "ip": "IP_ADDRESS_OR_SUBNET", "override_type": "ALLOW" } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
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/KEY:removeIpOverride"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$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/KEY:removeIpOverride" | Select-Object -Expand Content
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
从许可名单中移除 IP 地址或子网后,更改会在几分钟内生效。
列出许可名单中的所有 IP 地址
gcloud
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.
在使用下面的命令数据之前,请先进行以下替换:
- KEY:与您的网站关联的 reCAPTCHA 密钥。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys list-ip-overrides KEY --format=json
Windows (PowerShell)
gcloud recaptcha keys list-ip-overrides KEY --format=json
Windows (cmd.exe)
gcloud recaptcha keys list-ip-overrides KEY --format=json
REST
在使用任何请求数据之前,请先进行以下替换:
- KEY:与您的网站关联的 reCAPTCHA 密钥。
- PROJECT_ID:您的 Google Cloud 项目 ID
HTTP 方法和网址:
GET https://recaptchaenterprise.googleapis.com/v1/projects//keys/ :listIpOverrides
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://recaptchaenterprise.googleapis.com/v1/projects//keys/ :listIpOverrides"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects//keys/ :listIpOverrides" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "ipOverrides": [ { "ip": "1.2.3.4", "overrideType": "ALLOW" } ], "nextPageToken": "" }