為網站建立 reCAPTCHA 金鑰

Fraud Defense 的網站金鑰可讓您在網頁中設定保護政策和驗證方法。建立專屬網站金鑰,在提供流暢的使用者體驗,以及針對高風險動作進行驗證之間取得平衡。

事前準備

建立 reCAPTCHA 金鑰

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

建議您為測試和正式環境建立不同的 reCAPTCHA 金鑰。否則,測試環境中的資料可能會影響 reCAPTCHA 風險分析。

Cloud 控制台

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

    前往 Google Cloud Fraud Defense

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

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

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

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

  7. 為保護網域和子網域的 reCAPTCHA 金鑰,請確認「Disable domain verification」(停用網域驗證) 切換鈕已關閉。

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

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

    1. 在「網域清單」部分,按一下「新增網域」。
    2. 在「Domain」欄位中輸入網域名稱。
    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. 按一下 [Create key] (建立金鑰)。

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

    建立核取方塊 reCAPTCHA 金鑰

    1. 按一下「下一步 (選用)」。
    2. 在「其他設定」步驟中,開啟「要使用驗證問題嗎?」 切換鈕。
    3. 選取適當的「Challenge security」選項。

      驗證問題安全性選項可控制系統提示使用者回答次要驗證問題的機率,使用者必須根據指定類別選取圖片 (例如選取含有摩托車或樓梯的圖片)。

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

      如果選取「簡單」,使用者就不太可能看到視覺驗證問題。

    4. 在非正式環境中,如要指定金鑰在建立評估時應傳回的分數,請按照下列步驟操作:

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

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

    建立策略型驗證機制 reCAPTCHA 金鑰

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

      驗證問題安全性選項會定義向使用者顯示的 CAPTCHA 驗證問題複雜度和頻率。

      如要確保最佳反詐欺防護,請選取「Hard」(嚴格)。

      如果選取「Easy」(簡單),系統會顯示較少且較簡單的 CAPTCHA 驗證問題,因此使用者較不容易看到提示。

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

      1. 按一下「您建立的這組金鑰是否僅供測試之用?」切換鈕。
      2. 使用「設定分數」滑桿,指定 0 到 1.0 之間的分數。
    5. 選取觸發 CAPTCHA 驗證的分數門檻,這項設定適用於所有動作。
    6. 按一下 [Create key] (建立金鑰)。

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

管理控制台

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

    前往 Fraud Defense 管理控制台

  2. 在「Label」(標籤) 欄位中,輸入可用來識別網站的名稱。
  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 傳統版金鑰的密鑰,請將金鑰遷移至 Google Cloud上的 reCAPTCHA,然後找出舊版密鑰。

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

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

    前往 Fraud Defense

  2. 選取「金鑰」分頁標籤。

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

  4. 在「Key details」(金鑰詳細資料) 頁面中,前往「Integration」(整合) 分頁,然後按一下「Use legacy key」(使用舊版金鑰) 或「Integrate with a third-party service or plugin」(與第三方服務或外掛程式整合)。對話方塊隨即開啟,並顯示舊版密鑰。

後續步驟