为网站创建 reCAPTCHA 密钥

您可以创建 reCAPTCHA 密钥来验证网页上的用户互动。

reCAPTCHA 密钥表示如何为网站配置 reCAPTCHA。该配置包含一些重要选项,例如是否显示人机识别系统验证。

准备工作

创建 reCAPTCHA 密钥

您可以为 Google Cloud 项目创建的 reCAPTCHA 密钥数量不受限制。最好为每个网站创建一个 reCAPTCHA 密钥。

我们建议您为预演环境和生产环境创建单独的 reCAPTCHA 密钥。否则,您可能会使用测试环境中的数据污染 reCAPTCHA 风险分析。

Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Google Cloud Fraud Defense 页面。

    前往 Google Cloud Fraud Defense

  2. 验证项目名称是否显示在页面顶部的项目选择器中。

    如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

  3. 选择密钥标签页。
  4. 点击创建密钥。
  5. 在显示名称字段中,输入密钥的显示名称。
  6. 对于应用类型,选择 Web。

    系统会显示网域列表部分。

  7. 如需保护网域和子网域的 reCAPTCHA 密钥,请确保停用网域验证切换开关处于关闭状态。

    停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 reCAPTCHA 密钥。

  8. 输入您的网站的域名:

    1. 在域名列表部分中,点击添加域名。
    2. 在网域字段中,输入您的域名。
    3. 可选:要添加其他网域,请点击添加网域,然后在网域字段中输入其他网域的名称。 您最多可以添加 250 个网域。

      对于网站,reCAPTCHA 密钥对于您指定的网域和子网域是唯一的。如果您从多个网域传送您的网站,则可以指定多个网域。如果您指定了某个网域(例如 examplepetstore.com),则无需指定其子网域(例如 subdomain.examplepetstore.com)。对网域列表所做的更改最长可能需要 30 分钟才能生效。

      如需在超过 250 个网域中使用密钥,请点击停用域名验证切换开关。 然后,Google Cloud Fraud Defense 将忽略该域名列表。 您需要自行执行域名验证,即检查您所创建评估中的 tokenProperties.hostname 字段。

  9. 根据您要为网站创建的 reCAPTCHA 密钥类型,执行相应的操作:
  10. 创建基于分数的 reCAPTCHA 密钥

    1. 如果您希望允许基于分数的密钥通过 amp-recaptcha-input 组件与 Accelerated Mobile Pages (AMP) 搭配使用,请开启允许将此密钥用于 AMP 网页切换开关。
    2. 对于非生产环境,如果您想指定在为密钥创建任何评估时希望密钥返回的分数,请执行以下操作:

      1. 点击下一步(可选)
      2. 在“其他设置”步骤中,点击您创建此密钥是否仅用于测试目的?切换开关。
      3. 使用设置分数滑块指定 0 到 1.0 之间的分数。
    3. 点击创建密钥。

    新创建的密钥会列在 reCAPTCHA 密钥页面上。

    创建复选框 reCAPTCHA 密钥

    1. 点击下一步(可选)。
    2. 在“其他设置”步骤中,开启您是否会使用验证? 切换开关。
    3. 选择适当的质询安全性选项。

      验证安全性选项可控制提示用户进行二级挑战的可能性,在二级挑战中,将提示用户根据已确定的类别选择图像(例如,选择含摩托车或楼梯的图片)。

      如果您想确保获得最佳欺诈防护,请选择严格。

      如果您选择简单,系统不太可能会提示用户完成视觉验证。

    4. 对于非生产环境,如果您想指定在为密钥创建任何评估时希望密钥返回的分数,请执行以下操作:

      1. 点击您创建此密钥是否仅用于测试目的?切换开关。
      2. 使用设置分数滑块指定 0 到 1.0 之间的分数。
      3. 选择适当的验证类型选项。
        • 自动有时会弹出验证。
        • No CAPTCHA 不会显示验证问题。
        • 不可避开的验证会显示图片,但验证无法通过。
      4. 点击创建密钥。

      新创建的密钥会列在 reCAPTCHA 密钥页面上。

    创建基于政策的验证 reCAPTCHA 密钥

    1. 点击下一步(可选)。
    2. 在“其他设置”步骤中,开启您是否会使用验证? 切换开关。
    3. 选择适当的质询安全性选项。

      验证安全选项定义了向用户显示的人机识别系统验证的复杂性和频率。

      如果您想确保获得最佳欺诈防护,请选择严格。

      如果您选择简单,系统会减少人机识别系统验证问题的数量和复杂度,用户不太可能看到验证提示。

    4. 对于非生产环境,如果您想为密钥指定一个分数,以便在为该密钥创建任何评估时返回该分数,请执行以下操作:

      1. 点击您创建此密钥是否仅用于测试目的?切换开关。
      2. 使用设置分数滑块指定 0 到 1.0 之间的分数。
    5. 选择触发人机识别系统验证的分数阈值,该阈值适用于所有操作。
    6. 点击创建密钥。

    新创建的密钥会列在 reCAPTCHA 密钥页面上。

管理控制台

  1. 前往 Google Cloud Fraud Defense 管理控制台。

    前往 Fraud Defense 管理控制台

  2. 在标签字段中,输入一个可用于标识网站的名称。
  3. 如果您想创建基于得分的密钥,请选择基于得分 (v3)。如果您想创建复选框密钥,请选择基于验证方式 (v2)。
  4. 如需添加域名,请输入您的域名,然后点击 。

    如需添加其他域名,您可以重复此步骤。您最多可以添加 250 个域名。

  5. 如果您是首次使用 Google Cloud 控制台,请阅读服务条款,然后选中复选框。
  6. 点击提交。

如果您是首次使用 Google Cloud 控制台,系统会创建一个 Google Cloud 项目并启用必要的 API,以便您开始使用。如果您已有 Google Cloud 项目,则系统会为您的项目启用必要的 API,以便您开始使用。

gcloud

如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。

在使用下面的命令数据之前,请先进行以下替换:

  • INTEGRATION_TYPE:集成类型。 根据密钥类型,指定以下值:
    • score(对于基于得分的密钥)。
    • checkbox,用于复选框键。
    • policy-based-challenge(针对基于政策的验证密钥)。
  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • DOMAIN_NAME:允许使用该密钥的网站的网域或子网域。

    以英文逗号分隔列表的形式指定多个网域。

    如需在超过 250 个网域中使用密钥,请指定 --allow-all-domains 以停用域名验证。 然后,Google Cloud Fraud Defense 将忽略该网域列表。 您需要自行执行域名验证,即检查您所创建评估中的 tokenProperties.hostname 字段。

    停用域名验证会带来安全风险,因为网站没有任何限制,所以任何人都可以访问和使用您的 reCAPTCHA 密钥。

  • DEFAULT_SCORE_THRESHOLD:对于基于政策的验证密钥,如果未定义自定义分数阈值,则此字段定义密钥的通用验证阈值。
  • ACTION_SCORE_THRESHOLDS:对于基于政策的验证码密钥,此参数指定操作以及介于 0.0 到 1.0 之间的相应阈值分数。例如 login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'。

执行 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 参考文档,请参阅密钥和集成类型。

在使用任何请求数据之前,请先进行以下替换:

  • INTEGRATION_TYPE:集成类型。 根据密钥类型,指定以下值:
    • SCORE(对于基于得分的密钥)。
    • CHECKBOX,用于复选框键。
    • POLICY_BASED_CHALLENGE,用于基于政策的验证密钥。
  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • DOMAIN_NAME:允许使用该密钥的网站的网域或子网域。

    以英文逗号分隔列表的形式指定多个网域。

    如需在超过 250 个网域中使用密钥,请指定 --allow-all-domains 以停用域名验证。 然后,Google Cloud Fraud Defense 将忽略该网域列表。 您需要自行执行域名验证,即检查您所创建评估中的 tokenProperties.hostname 字段。

    停用域名验证会带来安全风险,因为网站没有任何限制,所以任何人都可以访问和使用您的 reCAPTCHA 密钥。

  • DEFAULT_SCORE_THRESHOLD:对于基于政策的验证密钥,如果未定义自定义分数阈值,则此字段定义密钥的通用验证阈值。
  • ACTION_SCORE_THRESHOLDS:对于基于政策的验证码密钥,此参数指定操作以及介于 0.0 到 1.0 之间的相应阈值分数。例如 login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'。
  • DEFAULT_SCORE_THRESHOLD:对于基于政策的验证密钥,如果未定义自定义得分阈值,此字段会定义该密钥的通用验证阈值。此功能处于预览版阶段。
  • ACTION_SCORE_THRESHOLDS:对于基于政策的验证码密钥,此参数指定操作以及介于 0.0 到 1.0 之间的相应阈值分数。例如 login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'。此功能处于预览版阶段。

HTTP 方法和网址:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

请求 JSON 正文:


{
  "displayName": "DISPLAY_NAME",
  "webSettings": {
    "allowedDomains": "DOMAINS",
    "integrationType": "INTEGRATION_TYPE"
  }
}

如需发送请求,请选择以下方式之一:

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 的第三方应用或内容管理系统 (CMS) 插件(例如 WordPress 或 Shopify)集成,则需要一个与插件支持的版本(v2 或 v3)匹配的密钥以及该密钥的旧密钥。如需详细了解如何检查密钥版本和配置 CMS 插件,请参阅协调管理控制台和 Google Cloud 控制台术语。

对于您创建的每个网站密钥,reCAPTCHA 都会创建一个旧版 reCAPTCHA 密钥(旧版密钥),您可以将其与第三方应用搭配使用。

如果您需要 reCAPTCHA Classic 密钥的密钥,请将该密钥迁移到 reCAPTCHA on Google Cloud,然后找到旧版密钥。

如需查找旧版密钥,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Fraud Defense 页面。

    前往 Fraud Defense

  2. 选择密钥标签页。

  3. 在 reCAPTCHA 密钥部分中,找到您创建的 reCAPTCHA 密钥,然后点击该密钥。

  4. 在密钥详情页面上,前往集成标签页,然后点击使用旧密钥或与第三方服务或插件集成。 系统会打开一个对话框,其中显示您的旧密钥。

后续步骤