為網站建立 reCAPTCHA 金鑰

本頁說明如何建立 reCAPTCHA 金鑰 (也稱為「金鑰」),以驗證網頁上的使用者互動。

reCAPTCHA 金鑰代表網站的 reCAPTCHA 設定。設定包括是否顯示 CAPTCHA 驗證問題等重要選項。

事前準備

建立 reCAPTCHA 金鑰

您可以為 Google Cloud 專案建立的 reCAPTCHA 金鑰數量沒有限制。建議每個網站都建立一組 reCAPTCHA 金鑰。

建議您為測試和正式環境分別建立 reCAPTCHA 金鑰。否則,您可能會使用測試環境的資料,汙染 reCAPTCHA 風險分析。

如要建立 reCAPTCHA 金鑰,最簡單的方式是透過 reCAPTCHA 管理主控台。您也可以使用 Google Cloud 控制台、reCAPTCHA Enterprise API 或 Google Cloud CLI。

管理控制台

  1. 前往 reCAPTCHA 管理控制台。

    前往 reCAPTCHA 管理控制台

  2. 在「標籤」欄位中,輸入可用於識別網站的名稱。
  3. 如要建立以分數為依據的金鑰,請選取「以分數為依據 (v3)」。如要建立核取方塊金鑰,請選取「驗證問題 (v2)」
  4. 如要新增網域,請輸入網域名稱,然後按一下

    如要新增其他網域,請重複這個步驟。最多可新增 250 個網域。

  5. 如果您是 Google Cloud 控制台的新使用者,請詳閱服務條款,然後勾選核取方塊。
  6. 按一下「提交」

如果您是 Google Cloud 控制台的新手,系統會建立 Google Cloud 專案並啟用必要的 API,方便您開始使用。如果您已有 Google Cloud 專案,系統會為專案啟用必要的 API,方便您開始使用。

Cloud 控制台

  1. 前往 Google Cloud 控制台的「reCAPTCHA」reCAPTCHA頁面。

    前往 reCAPTCHA

  2. 確認頁面頂端的資源選取器中顯示了專案名稱。

    如果沒有看到專案名稱,請按一下資源選取器,然後選取專案。

  3. 按一下「建立金鑰」
  4. 在「顯示名稱」欄位中,輸入金鑰的顯示名稱。
  5. 在「應用程式類型」部分,選取「網頁」

    系統會顯示「網域清單」部分。

  6. 輸入網站的網域名稱:

    1. 在「網域清單」部分,按一下「新增網域」
    2. 在「網域」欄位中,輸入網域名稱。
    3. 選用:如要新增其他網域,請按一下「新增網域」,然後在「網域」欄位中輸入其他網域名稱。最多可新增 250 個網域。

      如果是網站,reCAPTCHA 金鑰會專屬於您指定的網域和子網域。如果網站是從多個網域提供服務,可以指定多個網域。 如果您指定網域 (例如 examplepetstore.com),就不必指定子網域 (例如 subdomain.examplepetstore.com)。

      如要在超過 250 個網域上使用金鑰,請點選「停用網域驗證」切換鈕。 reCAPTCHA 隨即會忽略網域清單。 您必須檢查所建立評估中的 tokenProperties.hostname 欄位,自行執行網域驗證。

  7. 根據要為網站建立的 reCAPTCHA 金鑰類型,執行適當動作:
  8. 建立計分型 reCAPTCHA 金鑰

    1. 如要保護網域和子網域的 reCAPTCHA 金鑰,請務必關閉「停用網域驗證」切換鈕。

      停用網域驗證會造成安全風險,因為網站沒有任何限制,任何人都能存取及使用 reCAPTCHA 金鑰。

    2. 如要允許將這組以分數為準的金鑰用於 Accelerated Mobile Pages (AMP),請開啟「可在 AMP 頁面中使用這組金鑰」切換鈕。
    3. 如要為非正式版環境指定分數,讓金鑰在為該環境建立任何評估時傳回,請按照下列步驟操作:

      1. 按一下「下一步 (選用)」
      2. 在「其他設定」步驟中,按一下「您建立的這組金鑰是否僅供測試之用?」切換鈕。
      3. 使用「設定分數」滑桿指定介於 0 到 1.0 的分數。
    4. 按一下 [Create key] (建立金鑰)

    新建立的金鑰會列在「reCAPTCHA keys」(reCAPTCHA 金鑰) 頁面。

    建立核取方塊 reCAPTCHA 金鑰

    1. 如要保護網域和子網域的 reCAPTCHA 金鑰,請務必關閉「停用網域驗證」切換鈕。

      停用網域驗證會造成安全風險,因為網站沒有任何限制,任何人都能存取及使用 reCAPTCHA 金鑰。

    2. 按一下「下一步」(選用)。
    3. 在「其他設定」步驟中,開啟「你會使用挑戰嗎?」 切換。
    4. 選取適當的「驗證安全性」選項。

      「驗證」安全選項可控制系統提示使用者進行二次驗證的機率,二次驗證會要求使用者根據識別出的類別選取圖片 (例如選取含有機車或樓梯的圖片)。

      如要確保獲得最佳防詐欺保護,請選取「嚴格」

      如果選取「簡單」,使用者較不容易遇到視覺驗證提示。

    5. 如要為非正式版環境指定分數,讓金鑰在為該環境建立任何評估時傳回,請按照下列步驟操作:

      1. 按一下「您建立的這組金鑰是否僅供測試之用?」切換鈕。
      2. 使用「設定分數」滑桿指定介於 0 到 1.0 的分數。
      3. 選取適當的「挑戰類型」選項。
        • 自動有時會顯示挑戰。
        • No CAPTCHA 不會顯示驗證問題,
        • 不需要解題的驗證方法會顯示圖片,但無法通過驗證。
      4. 按一下「建立金鑰」

      新建立的金鑰會列在「reCAPTCHA keys」(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 密鑰 (舊版密鑰),供您搭配第三方應用程式使用。

如需 reCAPTCHA Classic 金鑰的密鑰,請將金鑰遷移至 reCAPTCHA Google Cloud,然後找出舊版密鑰。

如要找出舊版私密金鑰,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「reCAPTCHA」reCAPTCHA頁面。

    前往 reCAPTCHA

  2. 在「reCAPTCHA Keys」(reCAPTCHA 金鑰) 區段中,找出您建立的 reCAPTCHA 金鑰,然後按一下該金鑰。

  3. 在「重要詳細資料」頁面的「整合」分頁下方,按一下「使用舊版金鑰」。 系統會開啟對話方塊,顯示如何使用舊版密鑰。

後續步驟