本页介绍了如何创建 reCAPTCHA 密钥(也称为密钥),以验证网页上的用户互动。
reCAPTCHA 密钥代表如何为网站配置 reCAPTCHA。该配置包括一些重要选项,例如是否显示人机识别系统挑战。
准备工作
- 为 reCAPTCHA 准备好环境。
- 确保您具有以下 Identity and Access Management (IAM) 角色:reCAPTCHA Enterprise Admin (
roles/recaptchaenterprise.admin
)。 - 选择最适合您的应用场景的密钥类型。
创建 reCAPTCHA 密钥
您可以为 Google Cloud 项目创建的 reCAPTCHA 密钥数量没有限制。最好创建一个 各网站的 reCAPTCHA 密钥。
我们建议您为预演密钥和/或 生产环境否则,您可能要冒着测试环境中的数据污染 reCAPTCHA 的风险来进行风险分析。
如需创建 reCAPTCHA 密钥,最简单的方法是使用 reCAPTCHA 管理控制台。 或者,您也可以使用 Google Cloud 控制台、reCAPTCHA Enterprise API 或 Google Cloud CLI。
管理控制台
前往 reCAPTCHA 管理控制台。
- 在标签字段中,输入一个可用于识别您的网站的名称。
- 如果您想创建基于得分的键,请选择基于得分 (v3)。如果您想创建复选框键,请选择基于验证方式 (v2)。
- 如需添加网域,请输入您的网域名称,然后点击
如需添加其他网域,您可以重复此步骤。您最多可添加 250 个域名。
。
- 如果您是初次使用 Google Cloud 控制台,请阅读服务条款,并选中相应的复选框。
- 点击提交。
如果您刚开始使用 Google Cloud 控制台,系统会创建一个 Google Cloud 项目并启用必要的 API,以便您开始使用。如果您已有 Google Cloud 项目,则系统会为您的项目启用必要的 API,以便您开始使用。
Cloud 控制台
在 Google Cloud 控制台中,前往 reCAPTCHA 页面。
验证项目名称是否显示在页面顶部的项目选择器中。
如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。
- 点击创建密钥。
- 在显示名字段中,输入密钥的显示名。
- 在选择平台类型菜单中,选择
网站。
系统会显示网域列表部分。
-
输入您的网站的域名:
- 在网域列表部分中,点击添加网域。
- 在网域字段中,输入您的域名。
可选:要添加其他网域,请点击添加网域,然后在网域字段中输入其他网域的名称。 您最多可以添加 250 个网域。
对于网站,reCAPTCHA 密钥是各网域独有的, 子网域。如果您从多个网域传送您的网站,则可以指定多个网域。如果您指定了网域(例如
examplepetstore.com
),则无需指定其子网域(例如subdomain.examplepetstore.com
)。要在超过 250 个域上使用某个密钥,请点击 停用域名验证切换开关。 然后,reCAPTCHA 将忽略网域列表。 您需要自行执行域名验证,方法是检查您创建的评估中的
tokenProperties.hostname
字段。
- 根据您要为网站创建的 reCAPTCHA 密钥类型,执行适当的操作:
- 可选:如果您要停用域名验证或允许 AMP 网页,请执行以下操作:
展开 Web 应用防火墙 (WAF)、域名验证、AMP 网页和验证
部分。
-
为了保护您的网域和子网域的 reCAPTCHA 密钥,
请确保停用域名验证
关闭。
停用域名验证会带来安全风险,因为 因此您的 reCAPTCHA 密钥可供访问和使用 由任何人创建。
- 如果您希望允许基于得分的密钥用于 Accelerated Mobile Pages (AMP),请开启允许将此密钥用于 AMP 网页切换开关。
对于非生产环境,如果要指定得分,则需要将密钥 要在其创建任何评估后返回,请执行以下操作:
- 点击这是一个测试密钥切换开关。
- 在 Score 框中,指定 0 到 1.0 之间的得分。
- 点击创建密钥。
新创建的密钥会列在 reCAPTCHA 密钥页面上。
-
为了保护您的网域和子网域的 reCAPTCHA 密钥,
请确保停用域名验证
关闭。
- 展开 Web 应用防火墙 (WAF)、域名验证、AMP 网页和验证部分。
-
为了保护您的网域和子网域的 reCAPTCHA 密钥,请确保关闭停用域名验证切换开关。
停用域名验证会带来安全风险,因为 因此您的 reCAPTCHA 密钥可供访问和使用 由任何人创建。
- 开启使用复选框验证切换开关。
- 选择适当的验证安全性选项。
验证安全性选项可控制提示用户进行二级挑战的可能性,在二级挑战中,将提示用户根据已确定的类别选择图像(例如,选择含摩托车或楼梯的图片)。
如果您想确保 最佳防欺诈防护,请选择难度较高(更安全) 阻止漫游器访问)。
如果您选择最简单的挑战难度,用户会降低 很可能是视觉挑战提示。
-
对于非生产环境,如果要指定得分,则需要将密钥 要在其创建任何评估后返回,请执行以下操作:
- 点击这是一个测试密钥切换开关。
- 在 Score(得分)框中,指定一个介于 0 到 1.0 之间的得分。
- 选择适当的质询类型选项。
- 自动有时会弹出相应挑战。
- 无需人机识别系统:不显示验证。
- 无法解决的验证问题会显示图片,但问题未通过验证。
- 点击创建密钥。
新创建的密钥会列在 reCAPTCHA 密钥页面上。
创建基于得分的 reCAPTCHA 密钥
创建复选框 reCAPTCHA 密钥
gcloud
如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。
在使用下面的命令数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是网站名称。
- INTEGRATION_TYPE:集成类型。
根据键的类型,指定以下值:
score
表示基于得分的键。checkbox
(针对复选框键)。
- DOMAIN_NAME:获准使用该密钥的网站的网域或子网域。
以逗号分隔列表的形式指定多个网域。
如需在超过 250 个网域上使用某个密钥,请指定
--allow-all-domains
以停用域名验证。 然后,reCAPTCHA 会忽略网域列表。 您需要自行执行域名验证,方法是检查您创建的评估中的tokenProperties.hostname
字段。停用域名验证是一项安全风险,因为网站不受限制,因此任何人都可以访问和使用 reCAPTCHA 密钥。
执行 gcloud recaptcha keys create 命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME
响应中包含新创建的 reCAPTCHA 密钥。
REST
如需查看有关密钥类型和集成类型的 API 参考文档信息, 请参阅密钥 和集成类型。在使用任何请求数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是网站名称。
- INTEGRATION_TYPE:集成类型。
根据键的类型,指定以下值:
score
表示基于得分的键。checkbox
(针对复选框键)。
- DOMAIN_NAME:获准使用该密钥的网站的网域或子网域。
以逗号分隔列表的形式指定多个网域。
如需在超过 250 个网域上使用一个密钥,请指定
--allow-all-domains
以停用域名验证。 然后,reCAPTCHA 将忽略网域列表。 您需要自行执行域名验证,检查tokenProperties.hostname
字段。停用域名验证是一项安全风险,因为网站不受限制,因此任何人都可以访问和使用 reCAPTCHA 密钥。
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
请求 JSON 正文:
{ "displayName": "DISPLAY_NAME", "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
如需发送请求,请选择以下方式之一:
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"
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" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/project-id/keys/6Ldqgs0UAAAAAIn4k7YxEB-LwEh5S9-Gv6IIWB8m", "displayName": "DISPLAY_NAME", "webSettings": { "allowAllDomains": false, "allowedDomains": [ DOMAINS ], "allowAmpTraffic": false, "integrationType": "SCORE", "challengeSecurityPreference": "CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED" } }
(可选)查找旧版 reCAPTCHA 密钥
如果您想与不使用 reCAPTCHA Enterprise API,您需要旧密钥。
对于您创建的每个网站密钥,reCAPTCHA 都会创建一个 旧版 reCAPTCHA 密钥(旧版密钥),您可以 与您的第三方应用搭配使用
如需查找旧密钥,请执行以下操作:
在 Google Cloud 控制台中,前往 reCAPTCHA 页面。
在 reCAPTCHA 密钥部分,找到 reCAPTCHA 键,然后点击该键。
在密钥详情页面上,点击“集成”标签页下的使用旧版密钥。 系统会打开一个对话框,其中显示有关如何使用旧密钥的说明。