本文說明如何使用通用金鑰,在網站上設定政策引擎。通用金鑰是新的 Google Cloud Fraud Defense 金鑰,支援在政策引擎中建立規則。
有了政策引擎,Fraud Defense 就能根據您設定的自訂政策規則,明確觸發 CAPTCHA 驗證問題。這些規則可能會根據風險評分、IP 位址、使用者代理程式、ASN 或已驗證的機器人 (AI 代理) 身分,決定何時顯示 Fraud Defense 驗證。
Fraud Defense 政策引擎設定提供兩項主要功能:
- AutoExecute 整合 (
protected_endpoint_group):自動檢查傳出的非同步網路要求,並附加 reCAPTCHA 權杖,簡化前端 JavaScript 整合,因此前端只需要指令碼標記。 - 驗證政策 (
challenge_rule_groups):決定是否要針對不同的使用者動作顯示驗證,並使用自訂 CEL 規則設定相關驗證難度等級 (USABILITY、BALANCE、SECURITY)。
事前準備
您必須連結並啟用帳單帳戶,才能使用政策引擎。您可以使用信用卡或現有的 Google Cloud 專案帳單 ID 啟用計費功能。如需帳單方面的協助,請與 Cloud Billing 支援團隊聯絡。
建立通用金鑰
請根據您偏好的介面,選擇適當的選項來建立通用金鑰:
控制台
前往 Google Cloud 控制台的「Google Cloud Fraud Defense」頁面。
確認專案名稱顯示在頁面頂端的資源選取器中。
如果找不到專案名稱,請按一下資源選取器,然後選取專案。
- 選取「金鑰」分頁標籤。
- 按一下「建立金鑰」。
- 在「Display name」(顯示名稱) 欄位中,輸入金鑰的顯示名稱。
- 在「Application type」(應用程式類型) 部分,選取「Universal」(通用)。
- 按一下 [Create key] (建立金鑰)。
新建立的金鑰會列在「reCAPTCHA keys」(reCAPTCHA 金鑰) 頁面。
gcloud
如要使用 Google Cloud CLI 建立通用金鑰,請執行 gcloud recaptcha keys create 指令並加上 --universal 旗標:
gcloud recaptcha keys create --universal --display-name=DISPLAY_NAME
回應中會包含新建立的通用金鑰。
REST API
如要使用 REST API 建立通用金鑰,請使用 projects.keys.create 方法並指定 universalSettings:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
{
"displayName": "DISPLAY_NAME",
"universalSettings": {}
}
更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDDISPLAY_NAME:金鑰的顯示名稱,通常是網站名稱
回應中會包含新建立的通用金鑰。
設定政策引擎的網域
視您偏好的介面而定,請選擇適當的選項,為通用金鑰設定允許的網域:
控制台
前往 Google Cloud 控制台的「Fraud Defense」頁面。
確認專案名稱顯示在頁面頂端的資源選取器中。
如果找不到專案名稱,請按一下資源選取器,然後選取專案。
按一下「Keys」(金鑰) 分頁標籤。
找出要設定的通用按鍵,然後按一下該按鍵。
在「Key details」(金鑰詳細資料) 頁面中,按一下「Edit key」(編輯金鑰)。
找出「金鑰使用設定」部分。
為保護網域和子網域的 reCAPTCHA 金鑰,請務必關閉「Disable domain verification」(停用網域驗證) 切換鈕。
停用網域驗證機制會造成安全風險,因為網站沒有任何限制,任何人都能存取及使用您的 reCAPTCHA 金鑰。
輸入網站的網域名稱:
- 在「網域清單」部分,按一下「新增網域」。
- 在「Domain」欄位中輸入網域名稱。
- 選用:如要新增其他網域,請按一下「Add a domain」(新增網域),然後在「Domain」(網域) 欄位中輸入其他網域的名稱。最多可新增 250 個網域。
按一下 [儲存變更]。
gcloud
如要使用 Google Cloud CLI 更新通用金鑰允許的網域,請使用 gcloud alpha recaptcha policies update 指令,並在政策設定檔 (例如 POLICY.yaml) 中指定網域:
gcloud alpha recaptcha policies update --key=KEY_ID --policy=POLICY.yaml
POLICY.yaml 檔案必須在 clientSettings 下指定允許的網域:
clientSettings:
allowedDomains:
- DOMAIN_NAME_1
- DOMAIN_NAME_2
或者,如要允許所有網域並停用網域驗證,請在 POLICY.yaml 檔案中將 allowAllDomains 設為 true:
clientSettings:
allowAllDomains: true
更改下列內容:
KEY_ID:通用金鑰的 ID 或完整資源名稱DOMAIN_NAME_1、DOMAIN_NAME_2:允許使用金鑰的網站網域名稱
REST API
如要使用 REST API 更新通用金鑰允許的網域,請使用 projects.keys.updatePolicy 方法。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的 Google Cloud 專案 ID
- KEY_ID:通用金鑰的 ID
- DOMAIN_NAME_1、DOMAIN_NAME_2:允許使用金鑰的網站網域名稱
HTTP 方法和網址:
PATCH https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/KEY_ID/policy?updateMask=clientSettings.allowedDomains,clientSettings.allowAllDomains
JSON 要求主體:
{
"clientSettings": {
"allowedDomains": [
"DOMAIN_NAME_1",
"DOMAIN_NAME_2"
],
"allowAllDomains": false
}
}
請展開以下其中一個選項,以傳送要求:
如果要求成功,就會傳回更新後的政策設定。