为网站创建 reCAPTCHA 密钥

本页面介绍了如何创建 reCAPTCHA 密钥(也称为“密钥”)来验证网页上的用户互动。

reCAPTCHA 密钥表示为网站配置 reCAPTCHA Enterprise 的方式。该配置包含一些重要选项,例如是否显示人机识别系统质询。

准备工作

创建 reCAPTCHA 密钥

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

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

如需创建 reCAPTCHA 密钥,最简单的方法是通过 Google Cloud 控制台。或者,您也可以使用 reCAPTCHA Enterprise API 或 Google Cloud CLI。

控制台

  1. 在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise 页面。

    转到 reCAPTCHA Enterprise

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

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

  3. 点击创建密钥

  4. 显示名字段中,输入密钥的显示名。
  5. 选择平台类型菜单中,选择网站

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

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

    1. 网域列表部分中,点击添加网域

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

      对于网站,reCAPTCHA 密钥对于您指定的网域和子网域是唯一的。如果您从多个网域传送您的网站,则可以指定多个网域。如果您指定了网域(例如 examplepetstore.com),则无需指定其子网域(例如 subdomain.examplepetstore.com)。

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

    1. 可选:如果您想停用域名验证或允许 AMP 网页,请展开 Web 应用防火墙 (WAF)、域名验证、AMP 网页和验证部分。
      1. 如需保护您的网域和子网域的 reCAPTCHA 密钥,请务必关闭停用域名验证切换开关。

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

      2. 如果您希望将基于得分的键用于 Accelerated Mobile Pages (AMP) 网页,请开启允许此键用于 AMP 网页切换开关。
      3. 对于非生产环境,如果您想要指定在为密钥创建任何评估时希望密钥返回的得分,请执行以下操作:

        1. 点击这是一个测试密钥切换开关。
        2. Score 框中,指定一个 0 到 1.0 之间的得分。
      4. 点击创建密钥

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

    创建复选框 reCAPTCHA 密钥

    1. 展开 Web 应用防火墙 (WAF)、网域验证、AMP 网页和验证部分。
    2. 如需保护您的网域和子网域的 reCAPTCHA 密钥,请务必关闭停用域名验证切换开关。

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

    3. 使用复选框验证开关切换到开启状态。
    4. 选择适当的验证安全性选项。

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

      如果您想确保最佳的防欺诈保护,请选择难度较高(更安全,可防范漫游器)

      如果您选择最轻松的验证难度,则系统不太可能向用户显示提示。

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

      1. 点击这是一个测试密钥切换开关。
      2. Score 框中,指定一个 0 到 1.0 之间的得分。
      3. 选择相应的验证类型选项。
        • 如果点击 Auto,系统有时会弹出验证问题。
        • 无人机识别系统不会显示验证问题。
        • “无法解析”验证会显示图片,但未通过验证。
      4. 点击创建密钥

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

gcloud

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

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

  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • INTEGRATION_TYPE:集成类型。 根据键的类型,指定以下值:
    • score,适用于基于得分的键。
    • checkbox 用于复选框键。
  • DOMAIN_NAME:获准使用相应密钥的网站的网域或子网域。

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

    停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 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:获准使用相应密钥的网站的网域或子网域。

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

    停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 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 的第三方应用集成,则需要旧版密钥。

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

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

  1. 在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise 页面。

    转到 reCAPTCHA Enterprise

  2. 企业密钥部分,找到您创建的 reCAPTCHA 密钥,然后点击该密钥。

  3. 密钥详细信息页面的集成标签页下,点击使用旧版密钥。系统会打开一个对话框,其中说明了如何使用旧密钥。

后续步骤