浏览器合规性校验配置
概述
浏览器合规性校验用于检测客户端是否为真实浏览器,拦截爬虫、自动化脚本等非浏览器流量。该功能需要与合作方提供的认证服务配合实现。
实现原理
矩尺平台定义了两阶段认证架构,由转发引擎负责流量调度与 Cookie 管理:
- 阶段一(浏览器环境检测):客户端首次访问时,返回检测页面(HTML + JS 脚本),在浏览器中执行环境检测脚本,收集浏览器指纹信息(如 User-Agent、WebGL、Canvas、字体等),生成指纹请求并自动携带阶段一 Cookie 发送给转发引擎
- 阶段二(后端认证):转发引擎将阶段一的指纹请求(含包体)转发至合作方的认证服务,认证服务验证指纹后返回认证结果。认证成功则植入阶段二 Cookie,后续请求携带有效阶段二 Cookie 即可直接放行
矩尺转发引擎的职责:
- 根据请求是否携带 Cookie 判定当前所处的阶段,执行对应处理逻辑
- 将阶段一的指纹请求转发至后端认证服务
- 管理 Cookie 的颁发、校验与过期
- 根据认证结果决定放行或返回失败页面
合作方认证服务的职责:
- 提供检测页面(HTML + JS 脚本),实现浏览器环境信息采集与指纹生成
- 提供认证服务接口,验证指纹并返回认证结果
- 可通过响应动态指定 Token 有效期
工作流程
页面类请求(text/html)流程
客户端请求 → 无 Cookie → 返回检测页面(阶段一)
↓
浏览器执行检测脚本,采集环境信息生成指纹
↓
携带阶段一 Cookie 发送指纹请求 → 转发引擎 → 合作方认证服务
↓
认证成功 → 植入阶段二 Cookie → 后续请求直接放行
认证失败 → 返回失败自定义响应页面
Cookie 过期 → 重新返回检测页面非页面类请求流程
| 场景 | 处理方式 |
|---|---|
| 未携带 Cookie | 返回 HTTP 419 |
| 携带有效阶段一 Cookie | 交由认证服务处理 |
| 携带有效阶段二 Cookie | 直接放行 |
| Cookie 过期 | 返回 HTTP 419 |
| 认证失败 | 返回 HTTP 419 |
多级别检测
同一虚拟服务中,可通过分发规则为不同 URL 路径配置不同级别的检测:
- 普通检测:返回基础环境检测页面(URL1),适用于一般访问场景
- 深度检测:返回深度检测页面(URL2,如生物特征识别等),适用于高安全敏感场景
配置步骤
前置准备
合作方需提供以下资源:
- 认证页面与脚本:包括用于浏览器环境检测的 HTML 页面和 JS 脚本(配置在静态资源中)
- 认证服务接口:接收指纹请求并返回认证结果的 HTTP 服务
七层访问策略配置
入口:【负载流量管理 → 策略配置 → 七层策略 → 访问策略】页签,点击"新增",在认证类型中选择浏览器合规性校验。

| 配置项 | 说明 |
|---|---|
| 启用 | 开关,默认关闭 |
| Cookie 名称 | 认证 Cookie 名称,默认 n6_auth |
| Cookie 首次检测过期时间 | 阶段一 Cookie 有效期(秒),默认 15。用于防止恶意请求对认证服务造成冲击 |
| Cookie 过期时间 | 阶段二 Cookie 有效期(秒),默认 3600。认证服务可通过响应头部 Cookie_Timeout 动态修改 |
| 检测 URL | 首次访问返回的检测页面完整 URL,如 http://1.1.1.1/url1 |
| 联动认证服务 URL | 合作方认证服务地址,如 http://localhost:port/check |
| 失败自定义响应页面 URL | 认证失败时返回的页面完整 URL |
| 页面资源选择 | 页面类型(Accept 头部),默认为 text/html;未认证的非页面资源请求返回码,默认 419 |
| Cookie 签名密钥 | AES 加密密钥,支持一键生成随机密钥 |
| 限定项 | 仅限 HTTPS 连接(开关)、跨域限制(Strict / Lax / None)、绑定客户端源 IP、绑定浏览器用户代理 |
引用至 HTTP 策略
- 创建 HTTP 策略:【七层策略 → HTTP 策略】页签 → 新增
- 在「HTTP 访问控制策略」字段中选择上一步创建的访问策略
- 在虚拟服务分发规则中绑定此 HTTP 策略
注意事项
- 当前合规性校验功能的具体联调方式请参见配置指南或联系技术支持
- 检测页面和认证服务由合作方提供,矩尺负责流量调度与 Cookie 管理
- 安装包认证相关的静态资源请提前配置在平台的静态资源管理中
- 认证服务连接失败时,将回退到失败自定义响应页面
- 认证服务返回 HTTP 5xx 时,错误透传,不做回退
- 开启熔断后,认证超时在重试间隔内不再重试,直接返回失败页面
