IBM Cloud Docs
JavaScript 偵測

JavaScript 偵測

IBM Cloud® Internet Services (CIS) 機器人特性包括 JavaScript 偵測。 使用 Google的畢卡索指紋技術,將少量 JavaScript 注入用戶端裝置。 Picasso 結果會納入機器人評分中,並協助 CIS 將資料流量分類為自動化或人工。BotScoreSrc: Not Computed0 的評分與 Picasso JavaScript Fingerprints 要求相關。 這些要求不受任何防火牆規則封鎖。

此偵測技術會收集機器到達 CIS的一般資料。 例如,如果特定使用者透過 MacBook Pro 上的 Google Chrome 存取 CIS,由於有數百萬人在 MacBook Pro 上使用 Google Chrome,因此 CIS 無法識別特定個人。CIS 也會採取匿名化和逐步淘汰資料的措施,以增加隱私性。

JavaScript 只會注入回應 HTML 頁面或頁面視圖的要求,不包括 AJAX 呼叫。 API 和行動式應用程式資料流量不受影響。 此外,在 30 分鐘階段作業生命期限到期之前,不會再次注入程式碼。 畢加索的劇本大約 70 KB,執行時間因裝置而異,從 90 毫秒到 500 毫秒不等。

JavaScript 的 Snippet 將包含指向盤查平台的來源,其路徑以 /cdn-cgi/challenge-platform/... 開頭。

啟用 JavaScript 偵測

對於免費試用方案(Bot Fight Mode),JavaScript 偵測會自動啟用,無法停用。

對於所有其他方案 (Super Bot Fight Mode 及 Bot Management for Enterprise),JavaScript 偵測是選用項目。 若要調整設定,請跳至 安全> 機器人

強制執行 JavaScript 偵測

為了確保訪客先前已執行並通過 JavaScript 偵測,您可以使用欄位 cf.bot_management.js_detection.passed 來建立防火牆規則,以執行「受管理盤查」動作。 在 表示式預覽 區段中輸入 (cf.bot_management.js_detection.passed) 作為單一規則。

考量

  • 如果您有「內容安全原則 (CSP)」:
    • 確保容許 /cdn-cgi/challenge-platform/ 下的任何項目。 您的 CSP 應該容許從原始網域 (script-src self) 提供的 Script。

    • 如果 CSP 使用 nonce 作為 Script 標籤,CIS 會透過剖析 CSP 回應標頭,將這些 Nonce 新增至它所注入的 Script。

    • 如果 CSP 未將 nonce 用於 Script 標籤,且已啟用 JavaScript 偵測,您可能會看到主控台錯誤,例如:

      Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-b123b8a70+4jEj+d6gWI9U6IilUJIrlnRJbRR/uQl2Jc='), or a nonce ('nonce-...') is required to enable inline execution.
      
    • 不建議使用 unsafe-inline。 相反地,建議您在 CDN 中剖析並支援的 Script 標籤中使用 CSP nonces