JavaScript 检测
IBM Cloud® Internet Services (CIS) 机器人功能部件包含 JavaScript 检测。 使用 Google的 Picasso 指纹技术将少量 JavaScript 注入到客户机设备中。
将毕加索结果计入机器人评分中,并帮助 CIS 将流量分类为自动或人工流量。BotScoreSrc: Not Computed
和分数 0
与 Picasso JavaScript 指纹请求相关。 这些请求不受任何防火墙规则的阻止。
此检测技术收集有关到达 CIS的机器的常规数据。 例如,如果某个用户在 MacBook Pro上通过 Google Chrome 访问 CIS,因为有数百万用户使用 Google Chrome 在 MacBook Pro上,所以 CIS 无法识别特定个人。CIS 还采取措施对数据进行匿名处理和逐步淘汰,以增加隐私性。
仅为响应 HTML 页面或页面视图 (不包括 AJAX 调用) 的请求而注入 JavaScript。 API 和移动应用程序流量不受影响。 此外,在其 30 分钟的会话寿命到期之前,不会再次注入代码。 毕加索脚本大约为 70 KB,执行时间因设备而异,从 90 ms 到 500 ms 左右。
JavaScript 的片段将包含指向具有以 /cdn-cgi/challenge-platform/...
开头的路径的验证问题平台的源。
启用 JavaScript 检测
对于免费试用计划(机器人对战模式),JavaScript 检测会自动启用,无法关闭。
对于所有其他套餐 (Super Bot 战斗方式和 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
) 提供的脚本。 -
如果 CSP 将
nonce
用于脚本标记,那么 CIS 将通过解析 CSP 响应头向其插入的脚本添加这些非词。 -
如果 CSP 未将
nonce
用于脚本标记,并且已启用 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 中解析并支持的脚本标记中使用 CSPnonces
。
-