在网站上安装基于得分的密钥

本页介绍如何在您的网站上安装基于得分的密钥而不进行质询。借助基于分数的密钥,您可以在整个网站中使用 reCAPTCHA Enterprise,而无需用户解决人机识别系统验证问题。

安装基于得分的密钥后,您需要创建评估并接收每个请求的得分。根据得分,您可以了解用户互动造成的风险程度,并配置适当的响应。此外,基于得分的密钥可以收集机器人活动遥测数据,以便针对新的攻击或目标提前发出警告。

为了改进 reCAPTCHA Enterprise 的风险模型,我们建议您在您网站的每个页面上添加 ReCAPTCHA Enterprise,因为它有助于了解真实用户和聊天机器人在不同页面和操作之间转换的效果。

准备工作

  1. 为 reCAPTCHA Enterprise 准备好环境

  2. 创建基于得分的键

    或者,您可以通过执行以下步骤之一复制基于得分的现有密钥的 ID:

    • 如需从 Google Cloud 控制台复制现有密钥的 ID,请执行以下操作:

      1. 转到 reCAPTCHA Enterprise 页面。

        转到 reCAPTCHA Enterprise

      2. 在 reCAPTCHA 密钥列表中,将指针悬停在要复制的密钥上,然后点击
    • 如需使用 REST API 复制现有密钥的 ID,请使用 projects.keys.list 方法。
    • 如需使用 gcloud CLI 复制现有密钥的 ID,请使用 gcloud recaptcha keys list 命令。

将密钥放到您的网站上

当 reCAPTCHA Enterprise 具有与您的网站上的互动有关的上下文时,其效果最佳。reCAPTCHA Enterprise 会监控合法行为和滥用行为,以了解您网站上的互动情况。

为获得最佳结果,请在您网站的以下位置安装基于得分的密钥:

  • 表单
  • 操作(用户互动)
  • 在所有网页的背景中

基于得分的密钥不会干扰您的用户,因此您可以根据需要随时使用基于得分的密钥运行 reCAPTCHA Enterprise,而不会影响转换。

将密钥与前端集成

根据您要添加 reCAPTCHA Enterprise 验证的位置,选择相应的选项:

您可以在演示网站的源代码中查看每个选项的示例。

为用户互动添加验证

  1. 如需在网页上加载 reCAPTCHA Enterprise,请在网页的 <head></head> 元素中添加 JavaScript API 以及基于得分的密钥。

        <head>
        <script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script>
        ....
        </head>
      

    reCAPTCHA Enterprise 默认使用浏览器的语言。如果要指定其他语言,请在脚本中使用 hl=LANG 属性。 例如,如需使用法语,请指定以下内容:<script src="https://www.google.com/recaptcha/enterprise.js?hl=fr"></script>。 如需了解支持的语言,请参阅 reCAPTCHA Enterprise 的语言代码

    如果要为标记指定位置,请在脚本标记中使用 badge=LOCATION 作为查询参数。例如 www.google.com/recaptcha/enterprise.js?sitekey=KEY_ID&badge=bottomleft。默认情况下,该位置设置为 bottomright。其他可能的值包括 inlinebottomleft

  2. 如需在用户互动中添加 reCAPTCHA Enterprise 验证,请执行以下操作:

    1. 为了确保 grecaptcha.enterprise.execute() 在 reCAPTCHA 库加载后运行,请使用 grecaptcha.enterprise.ready()

    2. 针对您要使用基于得分的密钥保护的每次互动调用 grecaptcha.enterprise.execute()。在 action 参数中为用户互动指定一个有意义的名称。如需获取更多指导,请参阅操作

      以下示例展示了如何对登录操作调用 grecaptcha.enterprise.execute()

      <script>
      function onClick(e) {
        e.preventDefault();
        grecaptcha.enterprise.ready(async () => {
          const token = await grecaptcha.enterprise.execute('KEY_ID', {action: 'LOGIN'});
          // IMPORTANT: The 'token' that results from execute is an encrypted response sent by
          // reCAPTCHA Enterprise to the end user's browser.
          // This token must be validated by creating an assessment.
          // See https://cloud.google.com/recaptcha-enterprise/docs/create-assessment
        });
      }
      </script>
      

      grecaptcha.enterprise.execute() 会生成令牌,如以下示例所示:

      03AGdBq27tvcDrfiRuxQnyKs-SarXVzPODXLlpiwNsLqdm9BSQQRtxhkD-Wv6l2vBSnL_JQd80FZp3IeeF_TxNMrqhyQchk7hmg_ypDctt_F5RTr9zNO9TSDX3Fy0qHQTuaM9E3hrAkA1v1l7D-fCreg7uq8zoudfh1ZRmN49-2iAMAn4E8_ff-nmlLTNGVZmCSyeze-5xM24pM_JhhUVcCMIDKYtDUnr2imxg2ubIqMscCZGUtdXNUO_LRSzuwWDlLyAr3V2nVn29Z48PQa2QzbymEXzO9pCtoGQmY7kiZ8ILfD9DAJSSyUTMwJXVJptUeBmLM341fq_STYZBbPQJ0zYOEDvJoFsIwGMfuphkDet0nK56b0mkzaL8RCRy2oK31Mcx6n3PhGkCnQ6QIhiV5ZVmV1Hz9M3w99zYw6ekc3wPCNMZ6V6x1ApVpIk3reFfByRQ0C0_pRWwbKZHLXQ_oSTI1UI7kyH1VeXngsJAx2l7zcp0hQNipajC4YwL7Jb8X4cCD0NeiaY1YCrI5j87mK5axcMikq460I4niIFeDBlHGF-ndqu3CJstosAur-C_x827f-dPPjA9Vrw8MDb3x4KUb0vbA8xE9mJxPYGY0rPCR27vJ38Voa7DjEBGX9c-iufv5_wfj-yIfIAHy0iijnRLI0CVkWF2-iPdWv7LnkTwL3WKbF_MrEGZXmtyLX9dEZArfxmToeMuSdYkfikkgR2-k4Xzxlz15RbHJuWSAYqEyTTnpUXmOvDuTN92b0kYqbRelcLUI_Shm-8dq9e-L7K6YWQv32gV6NukZKY15dyrJaW10frBgTOGSTTpIyB7MNEL8S27WjWtOb-zWsgimIhoRNfS8BiJWkmK4gTj51m7Wur-qsDbHgV6gXlMvjJs_B7oXX-mKsKhY9ACtwukotBelGYQOvf1RDHjH3Yi1RDfELBY6AkwUK4tq8cACVGpCwa0gKUo-sbORTsGu_r7VTzYo1AaZD5HV4XUm8yoqszel6DmIfkJcI7PfzzvfUJuvMQ1itZSzpzuth3glbKBYsIjbKqG-q8cxtZ7u0l32j46ASo2zlCJWUjwP3W1P7MUenEoIZtjlyTB_tT6Fk8RxGgRv3oLP7NPFJGs9ZGOAl6tBHpZF8Y_FqEOCMKtBl2JYOE5h6_Es3buSdiMm7mtLr64pboGiEColF1vbVvYpyaaqGFPXBM6ekZSXEXLAI0_7rj_fCLgnB21KXfac95vZbM9vyJCASvDcWKwqajQwy5aGMNe9GtbMogYbZfz5UGWAIi24Vd8KSv3qKOOwvzbcw4H0HYdsBXA
      

  3. 令牌生成后,请将 reCAPTCHA 令牌发送到您的后端,并在两分钟内创建评估。

    对于 WAF 集成,如果您要集成操作令牌密钥,则必须将令牌附加到预定义的请求标头,而无需创建评估。如需了解详情,请参阅实现 reCAPTCHA 操作令牌

在 HTML 按钮上添加 reCAPTCHA

  1. 如需在网页上加载 reCAPTCHA Enterprise,请在网页的 <head></head> 元素中添加 JavaScript API 以及基于得分的密钥。

        <head>
        <script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script>
        ....
        </head>
      

    reCAPTCHA Enterprise 默认使用浏览器的语言。如果要指定其他语言,请在脚本中使用 hl=LANG 属性。 例如,如需使用法语,请指定以下内容:<script src="https://www.google.com/recaptcha/enterprise.js?hl=fr"></script>。 如需了解支持的语言,请参阅 reCAPTCHA Enterprise 的语言代码

  2. 如需在简单的 HTML 按钮上添加 reCAPTCHA Enterprise,请执行以下操作:

    1. 定义用于处理令牌的回调函数。

      <script>
         function onSubmit(token) {
           document.getElementById("demo-form").submit();
         } // Use `requestSubmit()` for extra features like browser input validation.
      </script>
      

      如需了解详情,请参阅 requestSubmit() 方法

    2. 向您的 html 按钮添加属性。

      <button class="g-recaptcha"
      data-sitekey="KEY_ID"
      data-callback='onSubmit'
      data-action='submit'>Submit</button>
      

      如果要为标志指定位置,请在具有 class=g-recaptcha 的元素上使用 data-badge=LOCATION 属性。默认情况下,该位置设置为 bottomright。其他可能的值包括 inlinebottomleft

    3. 使用此按钮在您的网站上提交表单时,g-recaptcha-response POST 参数会包含响应令牌。

  3. 令牌生成后,请将 reCAPTCHA 令牌发送到您的后端,并在两分钟内创建评估。

    对于 WAF 集成,如果您要集成操作令牌密钥,则必须将令牌附加到预定义的请求标头,而无需创建评估。如需了解详情,请参阅实现 reCAPTCHA 操作令牌

后续步骤