{
  "signals": [
    {
      "signal_id": "ipVsTimezone",
      "name": "IP 与时区一致性",
      "category": "consistency",
      "collect_side": "derived",
      "weight": 12,
      "claude_used": 1,
      "description": "经典封号触发：IP 显示海外但系统时区为中国 —— 设备身份与网络身份矛盾。",
      "how_detected": "比对服务端 ipCountry 与客户端 timezone 的地区归属。"
    },
    {
      "signal_id": "acceptVsIp",
      "name": "语言偏好 vs IP 国家",
      "category": "consistency",
      "collect_side": "derived",
      "weight": 10,
      "claude_used": 0,
      "description": "服务端 Accept-Language 主语言与 IP 归属国矛盾：中文偏好但 IP 在海外，或反之——典型伪造环境特征。",
      "how_detected": "比对服务端 Accept-Language 首语言与 GeoIP 国家。"
    },
    {
      "signal_id": "navWebdriver",
      "name": "自动化标记",
      "category": "consistency",
      "collect_side": "client",
      "weight": 8,
      "claude_used": 1,
      "description": "navigator.webdriver===true 表示浏览器受 WebDriver 控制(自动化/篡改环境)，Claude Code 会识别无头/自动化痕迹。",
      "how_detected": "navigator.webdriver"
    },
    {
      "signal_id": "ipVsLanguage",
      "name": "IP 与语言一致性",
      "category": "consistency",
      "collect_side": "derived",
      "weight": 8,
      "claude_used": 0,
      "description": "IP 显示海外但浏览器语言为 zh-CN，环境冲突提高风险分。",
      "how_detected": "比对 ipCountry 与 language。"
    },
    {
      "signal_id": "apiLies",
      "name": "API 谎言检测",
      "category": "consistency",
      "collect_side": "client",
      "weight": 8,
      "claude_used": 0,
      "description": "CreepJS lies 系统：扫描 navigator/webgl/canvas 等原型是否被篡改(toString 异常、getter 覆写、属性矛盾)。命中说明使用了 spoofing 工具(如 puppeteer-stealth)。",
      "how_detected": "检测 navigator.webdriver getter、plugins/mimeTypes 矛盾、window.chrome 缺失、WebGL getter 异常等。"
    },
    {
      "signal_id": "headlessScore",
      "name": "无头浏览器综合评分",
      "category": "consistency",
      "collect_side": "client",
      "weight": 7,
      "claude_used": 1,
      "description": "CreepJS headless 系统：综合 webdriver/plugins/languages/webgl renderer/permissions/window.chrome 等 10+ 判定点，输出 clean/suspect/headless 三档。",
      "how_detected": "多维无头特征加权评分。"
    },
    {
      "signal_id": "permissionsMatrix",
      "name": "权限状态矩阵",
      "category": "consistency",
      "collect_side": "client",
      "weight": 6,
      "claude_used": 1,
      "description": "navigator.permissions.query 探测一组 API 权限状态。无头/自动化环境通常所有权限统一 denied，与真人混合状态形成可识别指纹；反爬/反滥用系统据此识别脚本环境。",
      "how_detected": "对 12 个权限逐个 permissions.query 取 state，拼接 denied/granted/prompt 计数签名。"
    },
    {
      "signal_id": "webrtcLeak",
      "name": "WebRTC IP 泄露",
      "category": "consistency",
      "collect_side": "derived",
      "weight": 6,
      "claude_used": 0,
      "description": "WebRTC 可能绕过代理暴露真实公网 IP。将 WebRTC 取得的公网 IP 与服务端出口 IP 比对：不一致即泄露。",
      "how_detected": "客户端上报 WebRTC 公网 IP，服务端与 serverSeenIp 比对。"
    },
    {
      "signal_id": "versionLie",
      "name": "UA 版本谎言",
      "category": "consistency",
      "collect_side": "client",
      "weight": 6,
      "claude_used": 0,
      "description": "CreepJS features getVersionLie：UA 报告的浏览器版本与 CSS/JS 实际支持的特性版本不一致(如 UA 声称 Chrome 120 但不支持 :has())即谎言。",
      "how_detected": "比对 UA 版本号与 CSS/JS 特性实际支持版本。"
    },
    {
      "signal_id": "gibberish",
      "name": "渲染器乱码检测",
      "category": "consistency",
      "collect_side": "client",
      "weight": 5,
      "claude_used": 0,
      "description": "CreepJS trash 系统：WebGL renderer 字符串为乱码/无已知厂商词(SwiftShader/ANGLE/Intel/AMD/NVIDIA/Apple)即疑似伪造。",
      "how_detected": "正则检测 WebGL UNMASKED_RENDERER 是否含已知厂商关键词。"
    },
    {
      "signal_id": "privacyExtension",
      "name": "隐私扩展检测",
      "category": "consistency",
      "collect_side": "client",
      "weight": 5,
      "claude_used": 0,
      "description": "CreepJS resistance 系统：识别 Brave/Tor/Firefox 隐私模式及 11 种隐私扩展(noscript/chameleon/duckduckgo/jshelter 等)。隐私扩展常伴随指纹篡改。",
      "how_detected": "检测 window 属性特征与已知扩展注入痕迹。"
    },
    {
      "signal_id": "timezoneMeasured",
      "name": "时区自洽检测",
      "category": "consistency",
      "collect_side": "client",
      "weight": 4,
      "claude_used": 0,
      "description": "CreepJS timezone decryptLocation：Intl 报告的时区与 getTimezoneOffset 计算的 UTC 偏移不一致(如报告 Asia/Shanghai 但偏移非 -480)即篡改痕迹。",
      "how_detected": "比对 Intl timeZone 与 getTimezoneOffset 推算的时区。"
    },
    {
      "signal_id": "uaMobile",
      "name": "UA-CH mobile 字段",
      "category": "consistency",
      "collect_side": "client",
      "weight": 1,
      "claude_used": 0,
      "description": "navigator.userAgentData.mobile：Chrome 89+ 同步低熵字段。iOS 全平台 undefined(无 UA-CH)，Android Chrome=true，桌面 Chrome=false。",
      "how_detected": "navigator.userAgentData.mobile"
    },
    {
      "signal_id": "windowChrome",
      "name": "window.chrome 对象",
      "category": "consistency",
      "collect_side": "client",
      "weight": 1,
      "claude_used": 0,
      "description": "window.chrome 显式信号：iOS Safari/Chrome=absent，Android Chrome/桌面 Chrome=present；可用 runtime/csi/loadTimes 子属性交叉验证。",
      "how_detected": "typeof window.chrome + runtime/csi/loadTimes 子属性检测"
    },
    {
      "signal_id": "envBaseURL",
      "name": "环境变量 ANTHROPIC_BASE_URL",
      "category": "consistency",
      "collect_side": "server",
      "weight": 0,
      "claude_used": 1,
      "description": "【网页无法探测 · 仅提示】Claude Code CLI 真实红线之一：读取 ANTHROPIC_BASE_URL 环境变量，比对 147 个中国中转域名黑名单(XOR-91+Base64)。浏览器 JS 沙箱无法读取 OS 环境变量，此项网页端测不到，需用户自行检查终端 echo %ANTHROPIC_BASE_URL% / echo $ANTHROPIC_BASE_URL 是否为空或指向官方。",
      "how_detected": "网页无法采集；服务端固定返回 info，提示用户自查。"
    },
    {
      "signal_id": "dnsHint",
      "name": "IPv6/网络出口提示",
      "category": "consistency",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "客户端可见的网络出口线索(仅 info，不参与评分)。",
      "how_detected": "客户端上报 IPv6/WebRTC 能力等。"
    },
    {
      "signal_id": "uaFormFactors",
      "name": "UA-CH formFactors",
      "category": "consistency",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "navigator.userAgentData.getHighEntropyValues([\"formFactors\"])：含 Mobile/Tablet=移动端，含 Desktop=桌面端；iOS 全平台 undefined。",
      "how_detected": "navigator.userAgentData.getHighEntropyValues([\"formFactors\"]).formFactors"
    },
    {
      "signal_id": "pointerType",
      "name": "指针类型",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 1,
      "claude_used": 0,
      "description": "指针类型(coarse=触屏/fine=鼠标)，CSS @media pointer 派生信号。移动端 coarse，桌面端 fine。",
      "how_detected": "window.matchMedia('(pointer: coarse)').matches ? 'coarse' : 'fine'"
    },
    {
      "signal_id": "reqClientHints",
      "name": "请求头 Client Hints(服务端)",
      "category": "fingerprint",
      "collect_side": "server",
      "weight": 0,
      "claude_used": 0,
      "description": "服务端在协议层看到的 Sec-CH-UA / Sec-CH-UA-Platform / Sec-CH-UA-Mobile，不可由 JS 篡改，反映浏览器真实品牌与平台。",
      "how_detected": "服务端从请求头读取 Sec-CH-UA* 并拼接。"
    },
    {
      "signal_id": "reqSecFetch",
      "name": "请求头 Sec-Fetch(服务端)",
      "category": "fingerprint",
      "collect_side": "server",
      "weight": 0,
      "claude_used": 0,
      "description": "服务端看到的 Sec-Fetch-Site / Mode / Dest，协议级指纹，可用于识别请求上下文与自动化痕迹。",
      "how_detected": "服务端从请求头读取 sec-fetch-* 并拼接。"
    },
    {
      "signal_id": "screenOrientation",
      "name": "屏幕方向",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "screen.orientation.type：portrait-primary/landscape-primary 等。移动端会随设备旋转变化，桌面端恒定。",
      "how_detected": "screen.orientation?.type"
    },
    {
      "signal_id": "standaloneMode",
      "name": "PWA/主屏模式",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "PWA/主屏模式：navigator.standalone 或 matchMedia(display-mode: standalone)。区分 Safari 普通 tab 与 Home Screen Web App 的唯一信号。",
      "how_detected": "navigator.standalone || window.matchMedia('(display-mode: standalone)').matches"
    },
    {
      "signal_id": "canvas2d",
      "name": "Canvas 2D 指纹",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "canvas.toDataURL 渲染文本+图形哈希"
    },
    {
      "signal_id": "canvasWebGL",
      "name": "Canvas WebGL 指纹",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "WebGL 渲染场景像素哈希"
    },
    {
      "signal_id": "audioFP",
      "name": "音频指纹",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "OfflineAudioContext 振荡器输出哈希"
    },
    {
      "signal_id": "audioPattern",
      "name": "音频已知模式",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "音频指纹与 Blink/Gecko/WebKit 已知模式比对"
    },
    {
      "signal_id": "webglVendor",
      "name": "WebGL Vendor",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "WEBGL_debug_renderer_info UNMASKED_VENDOR"
    },
    {
      "signal_id": "webglRenderer",
      "name": "WebGL Renderer(GPU)",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "WEBGL_debug_renderer_info UNMASKED_RENDERER"
    },
    {
      "signal_id": "gpuTier",
      "name": "GPU 参数",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "gl.getParameter 各项上限"
    },
    {
      "signal_id": "screenRes",
      "name": "屏幕分辨率",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "screen.width x screen.height"
    },
    {
      "signal_id": "availRes",
      "name": "可用屏幕区域",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "screen.availWidth x availHeight"
    },
    {
      "signal_id": "colorDepth",
      "name": "颜色深度",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "screen.colorDepth"
    },
    {
      "signal_id": "pixelRatio",
      "name": "设备像素比",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "window.devicePixelRatio"
    },
    {
      "signal_id": "hardwareConcurrency",
      "name": "CPU 逻辑核数",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.hardwareConcurrency"
    },
    {
      "signal_id": "deviceMemory",
      "name": "设备内存",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.deviceMemory"
    },
    {
      "signal_id": "maxTouchPoints",
      "name": "触摸点数",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.maxTouchPoints"
    },
    {
      "signal_id": "platform",
      "name": "平台",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.platform"
    },
    {
      "signal_id": "vendor",
      "name": "浏览器 Vendor",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.vendor"
    },
    {
      "signal_id": "userAgent",
      "name": "User-Agent",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.userAgent"
    },
    {
      "signal_id": "fontsCount",
      "name": "可用字体总数",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "canvas 探测常见字体计数"
    },
    {
      "signal_id": "mathFP",
      "name": "数学函数指纹",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "Math.sin/cos/tan/exp 等精度差异"
    },
    {
      "signal_id": "errorFP",
      "name": "错误消息指纹",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "不同引擎错误文案差异"
    },
    {
      "signal_id": "speechVoices",
      "name": "语音合成声音",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "speechSynthesis.getVoices"
    },
    {
      "signal_id": "mediaDevices",
      "name": "媒体设备",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "enumerateDevices 类型统计"
    },
    {
      "signal_id": "cssMedia",
      "name": "CSS 媒体特性",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "matchMedia 各项(hover/pointer/color-gamut)"
    },
    {
      "signal_id": "headlessUA",
      "name": "无头特征",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "HeadlessChrome / plugins 为空等"
    },
    {
      "signal_id": "intlNumbering",
      "name": "数字系统",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "Intl NumberFormat resolvedOptions"
    },
    {
      "signal_id": "intlCalendar",
      "name": "历法",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "Intl DateTimeFormat calendar"
    },
    {
      "signal_id": "intlCurrency",
      "name": "默认货币",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "Intl 区域默认货币推断"
    },
    {
      "signal_id": "dateFormat",
      "name": "日期格式",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "toLocaleDateString 输出"
    },
    {
      "signal_id": "jsEngine",
      "name": "JS 引擎特征",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "V8/SpiderMonkey/JSC 行为差异"
    },
    {
      "signal_id": "webTransport",
      "name": "WebTransport 支持",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "'WebTransport' in window 能力探测(HTTP/3 指纹)"
    },
    {
      "signal_id": "webgpu",
      "name": "WebGPU 适配器",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.gpu.requestAdapter 厂商/架构"
    },
    {
      "signal_id": "connection",
      "name": "网络连接类型",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.connection.effectiveType（Chromium 系支持，Firefox/Safari/iOS WKWebView 不支持）"
    },
    {
      "signal_id": "connectionType",
      "name": "连接细节",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "navigator.connection saveData/rtt/downlink"
    },
    {
      "signal_id": "mediaDevicesCount",
      "name": "媒体设备计数",
      "category": "fingerprint",
      "collect_side": "client",
      "weight": 0,
      "claude_used": 0,
      "description": "设备指纹熵信号：不直接判违规，但组合起来可唯一标识/关联账号设备。",
      "how_detected": "enumerateDevices cam/mic/spk 数量"
    },
    {
      "signal_id": "ipCountry",
      "name": "IP 归属国家/地区",
      "category": "geo",
      "collect_side": "server",
      "weight": 30,
      "claude_used": 1,
      "description": "服务端读取访问者出口 IP 的 GeoIP 归属。中国大陆 IP 是最直接的违规红线。",
      "how_detected": "从 X-Forwarded-For / socket 取客户端 IP，经 ip-api.com 反查 countryCode。"
    },
    {
      "signal_id": "timezone",
      "name": "系统时区",
      "category": "geo",
      "collect_side": "client",
      "weight": 26,
      "claude_used": 1,
      "description": "Claude Code 真实读取的信号：Intl 时区若为 Asia/Shanghai、Asia/Urumqi 等中国大陆时区即红线。挂代理也改不掉系统时区，命中率接近 100%。",
      "how_detected": "Intl.DateTimeFormat().resolvedOptions().timeZone"
    },
    {
      "signal_id": "kycFlag",
      "name": "KYC 对手地区触发",
      "category": "geo",
      "collect_side": "derived",
      "weight": 25,
      "claude_used": 1,
      "description": "Anthropic 对 IP 属 CN/RU/KP/IR 等不支持地区默认触发强制身份验证(ID+实时自拍)，即便走 VPN 也会被标记；且因属不支持地区，验证通过仍会封号。",
      "how_detected": "由 GeoIP 国家码判定(Regions 表 status=unsupported)。"
    },
    {
      "signal_id": "language",
      "name": "浏览器语言",
      "category": "geo",
      "collect_side": "client",
      "weight": 20,
      "claude_used": 0,
      "description": "navigator.language / languages 首选项。zh-CN=红线，en-US=通过。",
      "how_detected": "navigator.languages[0] || navigator.language"
    },
    {
      "signal_id": "fonts",
      "name": "简体中文字体",
      "category": "geo",
      "collect_side": "client",
      "weight": 16,
      "claude_used": 0,
      "description": "Canvas 测宽探测微软雅黑、宋体、苹方 SC 等简体字体，检出即强中国信号。",
      "how_detected": "canvas measureText 宽度差分探测字体是否安装。"
    },
    {
      "signal_id": "ipType",
      "name": "IP 类型(住宅/机房/代理)",
      "category": "geo",
      "collect_side": "server",
      "weight": 15,
      "claude_used": 1,
      "description": "数据中心/机房/公共代理 IP 信誉低，Claude 风控直接提高欺诈分；住宅 IP 最安全。",
      "how_detected": "ip-api.com 返回 proxy / hosting / mobile 标志 + Tor 关键词判定 IP 类型。"
    },
    {
      "signal_id": "acceptLanguage",
      "name": "Accept-Language 请求头",
      "category": "geo",
      "collect_side": "server",
      "weight": 10,
      "claude_used": 0,
      "description": "HTTP 请求头里的语言偏好，zh-CN 会直接暴露中文环境。",
      "how_detected": "读取请求头 Accept-Language，与红白名单比对。"
    },
    {
      "signal_id": "vendorFonts",
      "name": "国产厂商字体",
      "category": "geo",
      "collect_side": "client",
      "weight": 10,
      "claude_used": 0,
      "description": "MiSans/HarmonyOS Sans/OPPO Sans/鸿蒙/方正(WPS) 等，几乎只在国产设备或国产软件环境出现。",
      "how_detected": "canvas measureText 探测厂商专有字体。"
    },
    {
      "signal_id": "cnBrowser",
      "name": "国产浏览器/WebView",
      "category": "geo",
      "collect_side": "client",
      "weight": 8,
      "claude_used": 0,
      "description": "微信/QQ/UC/夸克/百度/360 等国产浏览器与 App 内 WebView 特征。",
      "how_detected": "UA + UA-CH brands 正则匹配国产浏览器名单。"
    },
    {
      "signal_id": "deviceVendor",
      "name": "国产设备品牌",
      "category": "geo",
      "collect_side": "client",
      "weight": 6,
      "claude_used": 0,
      "description": "华为/鸿蒙/小米/OPPO/vivo 等国产设备型号。",
      "how_detected": "UA + UA-CH model 正则匹配国产设备名单。"
    },
    {
      "signal_id": "intlLocale",
      "name": "Intl 区域设置",
      "category": "geo",
      "collect_side": "client",
      "weight": 6,
      "claude_used": 0,
      "description": "浏览器用于日期/数字格式化的 locale，zh-CN 计红线。",
      "how_detected": "Intl.DateTimeFormat().resolvedOptions().locale"
    },
    {
      "signal_id": "speechLocale",
      "name": "语音合成语言包",
      "category": "geo",
      "collect_side": "client",
      "weight": 6,
      "claude_used": 0,
      "description": "speechSynthesis.getVoices() 暴露已安装语言包。含 zh-CN 声音几乎只会出现在中文系统，强环境信号。",
      "how_detected": "speechSynthesis.getVoices().map(v=>v.lang) 去重后比对。"
    },
    {
      "signal_id": "timezoneOffset",
      "name": "时区偏移",
      "category": "geo",
      "collect_side": "client",
      "weight": 4,
      "claude_used": 0,
      "description": "getTimezoneOffset() 是否为 UTC+8(-480)。",
      "how_detected": "new Date().getTimezoneOffset()"
    },
    {
      "signal_id": "emoji",
      "name": "Emoji/OS 厂商",
      "category": "geo",
      "collect_side": "client",
      "weight": 4,
      "claude_used": 0,
      "description": "由 UA 推断操作系统厂商，弱相关信号(仅作 info 参考，不计入违规分)。",
      "how_detected": "navigator.platform + userAgent 推断厂商。"
    },
    {
      "signal_id": "uaModel",
      "name": "UA-CH 设备型号",
      "category": "geo",
      "collect_side": "client",
      "weight": 4,
      "claude_used": 0,
      "description": "navigator.userAgentData.getHighEntropyValues([\"model\"]) 暴露设备型号。HarmonyOS/HUAWEI 等即坐实国产设备。",
      "how_detected": "userAgentData.getHighEntropyValues([\"model\"]).model"
    },
    {
      "signal_id": "intlCurrencyFmt",
      "name": "Intl 货币符号",
      "category": "geo",
      "collect_side": "client",
      "weight": 3,
      "claude_used": 0,
      "description": "用 zh-CN 格式化货币，符号为 ¥ 表明系统区域为中国。",
      "how_detected": "Intl.NumberFormat('zh-CN',{style:'currency',currency:'CNY'}).format(1000)"
    }
  ],
  "rules": [
    {
      "id": 12,
      "signal_id": "acceptLanguage",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "zh-cn|zh_hans|\\bhans\\b",
      "risk": 1,
      "label": "Accept-Language 含简体中文(zh-CN) —— 红线",
      "priority": 100,
      "suggestion": "修改浏览器 Accept-Language 请求头为 en-US,en;q=0.9；Chrome 可用扩展或启动参数 --lang=en-US。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 13,
      "signal_id": "acceptLanguage",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "zh-hk|zh-mo",
      "risk": 0.5,
      "label": "Accept-Language 为港澳中文 —— 受限",
      "priority": 80,
      "suggestion": "修改浏览器 Accept-Language 请求头为 en-US,en;q=0.9；Chrome 可用扩展或启动参数 --lang=en-US。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 14,
      "signal_id": "acceptLanguage",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "zh-tw",
      "risk": 0,
      "label": "Accept-Language 为中国台湾中文(Anthropic 支持)",
      "priority": 80,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 15,
      "signal_id": "acceptLanguage",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^en|,\\s*en",
      "risk": 0,
      "label": "Accept-Language 为英文 —— 通过",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 16,
      "signal_id": "acceptLanguage",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.1,
      "label": "其它语言",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 77,
      "signal_id": "acceptVsIp",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "mismatch",
      "risk": 0.7,
      "label": "Accept-Language 主语言与 IP 归属国矛盾 —— 典型伪造环境特征",
      "priority": 100,
      "suggestion": "确保「IP 国家 / 系统时区 / 浏览器语言 / Accept-Language」四者一致，全部指向同一支持地区。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 78,
      "signal_id": "acceptVsIp",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "ok",
      "risk": 0,
      "label": "语言偏好与 IP 地区一致",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 79,
      "signal_id": "acceptVsIp",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "缺 IP 数据，无法判定",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 83,
      "signal_id": "apiLies",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "lie",
      "risk": 0.9,
      "label": "检测到 API 原型篡改 —— 使用了 spoofing 工具(指纹浏览器/stealth 插件)",
      "priority": 100,
      "suggestion": "停用指纹篡改工具(puppeteer-stealth/指纹浏览器插件)；它们常留下 API 矛盾痕迹，比不篡改更可疑。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 84,
      "signal_id": "apiLies",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "suspect",
      "risk": 0.5,
      "label": "存在 API 矛盾嫌疑 —— 可能有指纹篡改",
      "priority": 80,
      "suggestion": "停用指纹篡改工具(puppeteer-stealth/指纹浏览器插件)；它们常留下 API 矛盾痕迹，比不篡改更可疑。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 85,
      "signal_id": "apiLies",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "clean",
      "risk": 0,
      "label": "未检测到 API 篡改",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 86,
      "signal_id": "apiLies",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未采集",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 41,
      "signal_id": "cnBrowser",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "micromessenger|wxwork|mqqbrowser|qqbrowser|quark|ucbrowser|ucweb|baiduboxapp|baidubrowser|miuibrowser|huaweibrowser|heytapbrowser|oppobrowser|vivobrowser|sogoumobilebrowser|maxthon|360se|360ee|qihoobrowser|2345explorer|lbbrowser|aweme|alipayclient|dingtalk|weibo|xiaohongshu",
      "risk": 1,
      "label": "检测到国产浏览器/App WebView —— 强中国信号",
      "priority": 100,
      "suggestion": "改用 Chrome/Edge/Firefox 国际版浏览器；避免使用微信/QQ/UC/夸克/百度/360 等国产浏览器打开 Claude。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 119,
      "signal_id": "cnBrowser",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "brave",
      "risk": 0.5,
      "label": "检测到 Brave 浏览器 —— 隐私浏览器，默认对 Canvas/WebGL/Audio 加噪",
      "priority": 80,
      "suggestion": "Brave 默认指纹加噪会触发风控；建议使用 Chrome/Edge 国际版访问 Claude。",
      "platform": "",
      "browser": "brave"
    },
    {
      "id": 120,
      "signal_id": "cnBrowser",
      "verdict": "info",
      "match_type": "regex",
      "pattern": "opr/",
      "risk": 0,
      "label": "检测到 Opera 浏览器 —— 已知派生浏览器（内置 VPN）",
      "priority": 60,
      "suggestion": "Opera 内置 VPN 会改变出口 IP；如使用 Claude 建议关闭 VPN 或换用 Chrome。",
      "platform": "",
      "browser": "opera"
    },
    {
      "id": 42,
      "signal_id": "cnBrowser",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未检测到国产浏览器",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 147,
      "signal_id": "connection",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0.5,
      "label": "Chrome 上 connection 缺失 —— Chromium 系应支持",
      "priority": 85,
      "suggestion": "当前浏览器应支持 connection，缺失可能为环境篡改。",
      "platform": "",
      "browser": "chrome"
    },
    {
      "id": 148,
      "signal_id": "connection",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0.5,
      "label": "Edge 上 connection 缺失 —— Chromium 系应支持",
      "priority": 85,
      "suggestion": "当前浏览器应支持 connection，缺失可能为环境篡改。",
      "platform": "",
      "browser": "edge"
    },
    {
      "id": 149,
      "signal_id": "connection",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0,
      "label": "Firefox 上 connection 缺失 —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "firefox"
    },
    {
      "id": 150,
      "signal_id": "connection",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0,
      "label": "Safari 上 connection 缺失 —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 163,
      "signal_id": "connection",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0,
      "label": "iOS Safari 不支持 connection —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 177,
      "signal_id": "connection",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0,
      "label": "iOS Chrome 不支持 connection(WKWebView) —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 186,
      "signal_id": "connection",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^(?!n/a)",
      "risk": 0,
      "label": "Android Chrome connection 存在 —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": "chrome"
    },
    {
      "id": 146,
      "signal_id": "deviceMemory",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^(3[3-9]|[4-9][0-9]|[1-9][0-9]{2,})$",
      "risk": 0.85,
      "label": "deviceMemory>32 —— API 上限为 32，伪造",
      "priority": 100,
      "suggestion": "deviceMemory API 上限为 32（合法值 2/4/8/16/32，来源 MDN 2026-01 + W3C 2026-03），超过即为伪造；请勿篡改。",
      "platform": "",
      "browser": "chrome,edge,brave,opera,vivaldi"
    },
    {
      "id": 145,
      "signal_id": "deviceMemory",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^[0-9]",
      "risk": 0.85,
      "label": "Safari 上 deviceMemory 有值 —— Safari 不支持 Device Memory API",
      "priority": 90,
      "suggestion": "Safari 不支持 deviceMemory，有值说明环境被篡改。",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 141,
      "signal_id": "deviceMemory",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "?",
      "risk": 0.5,
      "label": "Chrome 上 deviceMemory 缺失 —— Chromium 系应支持",
      "priority": 85,
      "suggestion": "当前浏览器应支持 deviceMemory，缺失可能为环境篡改。",
      "platform": "",
      "browser": "chrome"
    },
    {
      "id": 142,
      "signal_id": "deviceMemory",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "?",
      "risk": 0.5,
      "label": "Edge 上 deviceMemory 缺失 —— Chromium 系应支持",
      "priority": 85,
      "suggestion": "当前浏览器应支持 deviceMemory，缺失可能为环境篡改。",
      "platform": "",
      "browser": "edge"
    },
    {
      "id": 143,
      "signal_id": "deviceMemory",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "?",
      "risk": 0,
      "label": "Firefox 上 deviceMemory 缺失 —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "firefox"
    },
    {
      "id": 144,
      "signal_id": "deviceMemory",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "?",
      "risk": 0,
      "label": "Safari 上 deviceMemory 缺失 —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 162,
      "signal_id": "deviceMemory",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "?",
      "risk": 0,
      "label": "iOS Safari 不支持 deviceMemory —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 176,
      "signal_id": "deviceMemory",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "?",
      "risk": 0,
      "label": "iOS Chrome 不支持 deviceMemory(WKWebView) —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 185,
      "signal_id": "deviceMemory",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^[0-9]",
      "risk": 0,
      "label": "Android Chrome deviceMemory 存在 —— 与桌面 Chrome 一致",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": "chrome"
    },
    {
      "id": 43,
      "signal_id": "deviceVendor",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "harmonyos|openharmony",
      "risk": 1,
      "label": "鸿蒙系统 —— 坐实国产设备",
      "priority": 100,
      "suggestion": "如需规避，使用海外品牌设备或在国际版系统配置文件中操作；无法在国产设备上完全消除该信号。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 44,
      "signal_id": "deviceVendor",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "huawei|\\bhonor\\b|meizu",
      "risk": 0.8,
      "label": "华为/荣耀/魅族设备",
      "priority": 95,
      "suggestion": "如需规避，使用海外品牌设备或在国际版系统配置文件中操作；无法在国产设备上完全消除该信号。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 45,
      "signal_id": "deviceVendor",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "xiaomi|redmi|\\bpoco\\b|oppo|vivo|realme|oneplus|nubia|\\bzte\\b|lenovo",
      "risk": 0.6,
      "label": "小米/OPPO/vivo 等国产设备(部分海外销售)",
      "priority": 90,
      "suggestion": "如需规避，使用海外品牌设备或在国际版系统配置文件中操作；无法在国产设备上完全消除该信号。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 46,
      "signal_id": "deviceVendor",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未检测到国产设备",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 47,
      "signal_id": "emoji",
      "verdict": "info",
      "match_type": "regex",
      "pattern": "linux",
      "risk": 0,
      "label": "Linux 系统 —— 弱信号(仅参考)",
      "priority": 80,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 48,
      "signal_id": "emoji",
      "verdict": "info",
      "match_type": "regex",
      "pattern": "microsoft|windows",
      "risk": 0,
      "label": "Windows —— 弱信号(仅参考)",
      "priority": 70,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 49,
      "signal_id": "emoji",
      "verdict": "info",
      "match_type": "regex",
      "pattern": "google|android",
      "risk": 0,
      "label": "Android —— 弱信号(仅参考)",
      "priority": 70,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 50,
      "signal_id": "emoji",
      "verdict": "info",
      "match_type": "regex",
      "pattern": "apple|mac",
      "risk": 0,
      "label": "Apple —— 弱信号(仅参考)",
      "priority": 70,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 51,
      "signal_id": "emoji",
      "verdict": "info",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未知厂商(仅参考)",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 70,
      "signal_id": "envBaseURL",
      "verdict": "info",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "网页无法探测环境变量；请自查终端 ANTHROPIC_BASE_URL 是否为空或指向 api.anthropic.com 官方",
      "priority": 0,
      "suggestion": "在终端执行 echo %ANTHROPIC_BASE_URL%(Windows) 或 echo $ANTHROPIC_BASE_URL(macOS/Linux)；若返回第三方中转域名，Claude Code CLI 会命中 147 域名黑名单红线，需清除该环境变量或改为官方地址。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 35,
      "signal_id": "fonts",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^SC:[1-9]",
      "risk": 1,
      "label": "检测到简体中文字体 —— 强中国信号",
      "priority": 100,
      "suggestion": "卸载或停用简体中文字体(微软雅黑/宋体/苹方 SC 等)；或使用海外版系统/纯净浏览器配置文件。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 131,
      "signal_id": "fonts",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "SimSun",
      "risk": 0.85,
      "label": "Mac 上探测到 SimSun —— Mac 默认无宋体",
      "priority": 100,
      "suggestion": "字体与平台默认不符；Mac 默认无 SimSun，请使用与平台一致的系统字体。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 132,
      "signal_id": "fonts",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "NSimSun",
      "risk": 0.85,
      "label": "Mac 上探测到 NSimSun —— Mac 默认无新宋体",
      "priority": 100,
      "suggestion": "字体与平台默认不符；Mac 默认无 NSimSun。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 133,
      "signal_id": "fonts",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "Microsoft YaHei",
      "risk": 0.85,
      "label": "Mac 上探测到 Microsoft YaHei —— Mac 默认无微软雅黑",
      "priority": 100,
      "suggestion": "字体与平台默认不符；Mac 默认无 Microsoft YaHei。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 134,
      "signal_id": "fonts",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "YaHei UI",
      "risk": 0.85,
      "label": "Mac 上探测到 YaHei UI —— Mac 默认无",
      "priority": 100,
      "suggestion": "字体与平台默认不符；Mac 默认无 YaHei UI。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 135,
      "signal_id": "fonts",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "Segoe UI Variable",
      "risk": 0.9,
      "label": "Mac 上探测到 Segoe UI Variable —— Win11 独有字体",
      "priority": 100,
      "suggestion": "字体与平台不符；Segoe UI Variable 为 Win11 独有，Mac 不应存在。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 36,
      "signal_id": "fonts",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "^TC:[1-9]",
      "risk": 0.2,
      "label": "仅检测到繁体字体(台湾常见)",
      "priority": 80,
      "suggestion": "若需隐藏台湾环境，使用海外纯净浏览器配置文件，避免系统安装繁体中文字体(如 Microsoft JhengHei/苹方 TC)。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 137,
      "signal_id": "fonts",
      "verdict": "warn",
      "match_type": "contains",
      "pattern": "DengXian",
      "risk": 0.5,
      "label": "Mac 上探测到 DengXian —— Win10+ 独有字体",
      "priority": 80,
      "suggestion": "字体与平台不符；DengXian 为 Win10+ 独有，Mac 默认无。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 138,
      "signal_id": "fonts",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "Calibri|Cambria|Consolas",
      "risk": 0.5,
      "label": "Mac 上探测到 Office 字体 —— Mac 默认无",
      "priority": 80,
      "suggestion": "字体与平台默认不符；这些为 Windows Office 字体，Mac 需安装 Office 才有。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 136,
      "signal_id": "fonts",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Segoe UI Variable",
      "risk": 0,
      "label": "Windows 上探测到 Segoe UI Variable —— Win11 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 139,
      "signal_id": "fonts",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "PingFang SC",
      "risk": 0,
      "label": "Mac 上探测到 PingFang SC —— Mac 默认字体，正常",
      "priority": 50,
      "suggestion": "",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 168,
      "signal_id": "fonts",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "PingFang",
      "risk": 0,
      "label": "iOS Safari 探测到 PingFang SC —— iOS 默认字体正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 190,
      "signal_id": "fonts",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Noto",
      "risk": 0,
      "label": "Android Chrome 探测到 Noto 字体 —— Android 默认字体正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 37,
      "signal_id": "fonts",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未检测到中文字体",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 95,
      "signal_id": "gibberish",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "gibberish",
      "risk": 0.85,
      "label": "WebGL renderer 为乱码/无已知厂商 —— 疑似指纹伪造",
      "priority": 100,
      "suggestion": "停用指纹篡改工具(puppeteer-stealth/指纹浏览器插件)；它们常留下 API 矛盾痕迹，比不篡改更可疑。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 96,
      "signal_id": "gibberish",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "normal",
      "risk": 0,
      "label": "WebGL renderer 含已知厂商关键词",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 97,
      "signal_id": "gibberish",
      "verdict": "info",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "WebGL 不可用",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 129,
      "signal_id": "hardwareConcurrency",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "^(6|13|15)$",
      "risk": 0.5,
      "label": "Mac 上 CPU 核数为非 M 系列档位 —— 可疑",
      "priority": 85,
      "suggestion": "CPU 核心数与 Apple Silicon M 系列档位不符；请勿伪造 hardwareConcurrency。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 130,
      "signal_id": "hardwareConcurrency",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "^[12]$",
      "risk": 0.4,
      "label": "Windows 上 CPU 核数≤2 —— Win11 24H2 硬件门槛高，可疑",
      "priority": 75,
      "suggestion": "CPU 核心数过低与 Windows 11 门槛不符；请勿伪造 hardwareConcurrency。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 87,
      "signal_id": "headlessScore",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "headless",
      "risk": 0.95,
      "label": "无头浏览器环境(多维特征命中) —— 极高风险",
      "priority": 100,
      "suggestion": "不要用 Playwright/Puppeteer 无头浏览器访问 Claude；如需自动化请用真实浏览器并清除 webdriver 痕迹。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 88,
      "signal_id": "headlessScore",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "suspect",
      "risk": 0.5,
      "label": "存在无头特征嫌疑",
      "priority": 80,
      "suggestion": "不要用 Playwright/Puppeteer 无头浏览器访问 Claude；如需自动化请用真实浏览器并清除 webdriver 痕迹。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 89,
      "signal_id": "headlessScore",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "clean",
      "risk": 0,
      "label": "非无头环境",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 90,
      "signal_id": "headlessScore",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未采集",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 62,
      "signal_id": "intlCurrencyFmt",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "¥|￥|rmb|cny",
      "risk": 0.5,
      "label": "货币格式化带人民币符号/代号 —— 系统区域为中国",
      "priority": 100,
      "suggestion": "将操作系统区域格式改为目标地区：Windows 设置→时间和语言→区域；macOS 系统设置→通用→语言与地区。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 63,
      "signal_id": "intlCurrencyFmt",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "货币格式化未带人民币符号",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 28,
      "signal_id": "intlLocale",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^zh-cn|hans|^zh$",
      "risk": 1,
      "label": "Intl locale 为简体中文 —— 红线",
      "priority": 100,
      "suggestion": "将浏览器首选语言改为 en-US：浏览器设置→语言→添加 English (United States) 并置顶。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 29,
      "signal_id": "intlLocale",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "^zh-(hk|mo)",
      "risk": 0.5,
      "label": "Intl locale 港澳中文",
      "priority": 80,
      "suggestion": "将浏览器首选语言改为 en-US：浏览器设置→语言→添加 English (United States) 并置顶。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 30,
      "signal_id": "intlLocale",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^zh-tw|hant",
      "risk": 0,
      "label": "Intl locale 台湾中文(支持)",
      "priority": 80,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 140,
      "signal_id": "intlLocale",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "_",
      "risk": 0.4,
      "label": "Mac 上 Intl locale 含下划线 —— Mac 浏览器应返回 BCP-47 风格(连字符)",
      "priority": 70,
      "suggestion": "Intl locale 分隔符与平台风格不符；macOS 浏览器应返回 BCP-47 风格(如 zh-Hans-CN)。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 31,
      "signal_id": "intlLocale",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.1,
      "label": "其它 locale",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 1,
      "signal_id": "ipCountry",
      "verdict": "red",
      "match_type": "country_in",
      "pattern": "[\"CN\"]",
      "risk": 1,
      "label": "中国大陆 IP —— Anthropic 不支持地区，违规红线",
      "priority": 100,
      "suggestion": "使用目标支持地区的住宅 IP 代理(非机房 IP)；确保代理出口国家与账户账单国一致。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 2,
      "signal_id": "ipCountry",
      "verdict": "red",
      "match_type": "country_in",
      "pattern": "[\"RU\",\"IR\",\"KP\",\"BY\",\"CU\",\"SY\"]",
      "risk": 1,
      "label": "Anthropic 明确不支持/受制裁地区 IP",
      "priority": 95,
      "suggestion": "使用目标支持地区的住宅 IP 代理(非机房 IP)；确保代理出口国家与账户账单国一致。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 3,
      "signal_id": "ipCountry",
      "verdict": "warn",
      "match_type": "country_in",
      "pattern": "[\"HK\",\"MO\"]",
      "risk": 0.6,
      "label": "中国港澳 —— 未列入 Anthropic 公开支持名单(受限)",
      "priority": 90,
      "suggestion": "使用目标支持地区的住宅 IP 代理(非机房 IP)；确保代理出口国家与账户账单国一致。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 4,
      "signal_id": "ipCountry",
      "verdict": "white",
      "match_type": "country_in",
      "pattern": "[\"US\",\"GB\",\"CA\",\"AU\",\"NZ\",\"JP\",\"KR\",\"SG\",\"DE\",\"FR\",\"NL\",\"SE\",\"CH\",\"IE\",\"ES\",\"IT\",\"PT\",\"FI\",\"NO\",\"DK\",\"BE\",\"AT\",\"PL\",\"IN\",\"ID\",\"MY\",\"TH\",\"PH\",\"VN\",\"BR\",\"MX\",\"AE\",\"SA\",\"IL\",\"TR\",\"TW\"]",
      "risk": 0,
      "label": "Anthropic 支持地区 IP —— 通过",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 5,
      "signal_id": "ipCountry",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.05,
      "label": "其它地区(名单外，低风险)",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 6,
      "signal_id": "ipType",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "tor",
      "risk": 1,
      "label": "检测到 Tor 出口节点 —— 极高风险",
      "priority": 100,
      "suggestion": "更换为住宅 IP 代理；避免使用机房/数据中心 IP(VPN 常为机房 IP)；Tor 出口必被风控。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 7,
      "signal_id": "ipType",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "proxy",
      "risk": 0.9,
      "label": "检测到公共代理/VPN 出口 IP —— 高风险",
      "priority": 98,
      "suggestion": "更换为住宅 IP 代理；避免使用机房/数据中心 IP(VPN 常为机房 IP)；Tor 出口必被风控。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 8,
      "signal_id": "ipType",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "hosting",
      "risk": 0.7,
      "label": "机房/数据中心 IP(Hosting) —— 信誉低易被标记",
      "priority": 90,
      "suggestion": "更换为住宅 IP 代理；避免使用机房/数据中心 IP(VPN 常为机房 IP)；Tor 出口必被风控。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 9,
      "signal_id": "ipType",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "residential",
      "risk": 0,
      "label": "住宅 IP —— 通过(最安全)",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 10,
      "signal_id": "ipType",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "mobile",
      "risk": 0.1,
      "label": "移动网络 IP —— 通过",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 11,
      "signal_id": "ipType",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.2,
      "label": "IP 类型未知",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 74,
      "signal_id": "ipVsLanguage",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "mismatch",
      "risk": 0.6,
      "label": "IP 显示海外但浏览器语言为简体中文 —— 环境冲突",
      "priority": 100,
      "suggestion": "确保「IP 国家 / 系统时区 / 浏览器语言 / Accept-Language」四者一致，全部指向同一支持地区。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 75,
      "signal_id": "ipVsLanguage",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "ok",
      "risk": 0,
      "label": "网络与语言一致",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 76,
      "signal_id": "ipVsLanguage",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "缺 IP 数据，无法判定",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 71,
      "signal_id": "ipVsTimezone",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "mismatch",
      "risk": 0.8,
      "label": "IP 显示海外但系统时区为中国大陆 —— 经典封号触发(环境不一致)",
      "priority": 100,
      "suggestion": "确保「IP 国家 / 系统时区 / 浏览器语言 / Accept-Language」四者一致，全部指向同一支持地区。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 72,
      "signal_id": "ipVsTimezone",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "ok",
      "risk": 0,
      "label": "网络与设备地区一致",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 73,
      "signal_id": "ipVsTimezone",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "缺 IP 数据，无法判定",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 80,
      "signal_id": "kycFlag",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "flag",
      "risk": 1,
      "label": "IP 属 Anthropic 不支持地区：默认触发 ID+自拍 KYC，且验证通过仍会封号",
      "priority": 100,
      "suggestion": "更换为 Anthropic 支持地区(US/GB/JP/SG 等)的住宅 IP；不支持地区的 KYC 即使通过仍会封号。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 81,
      "signal_id": "kycFlag",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "ok",
      "risk": 0,
      "label": "非对手地区，不触发强制 KYC",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 82,
      "signal_id": "kycFlag",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "缺 IP 数据，无法判定",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 22,
      "signal_id": "language",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^zh-cn|hans",
      "risk": 1,
      "label": "简体中文(zh-CN) —— 红线",
      "priority": 100,
      "suggestion": "将浏览器首选语言改为 en-US：浏览器设置→语言→添加 English (United States) 并置顶。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 23,
      "signal_id": "language",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "zh",
      "risk": 0.9,
      "label": "中文(zh 泛写，默认按大陆处理) —— 高风险",
      "priority": 95,
      "suggestion": "将浏览器首选语言改为 en-US：浏览器设置→语言→添加 English (United States) 并置顶。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 24,
      "signal_id": "language",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "^zh-hk|^zh-mo",
      "risk": 0.5,
      "label": "港澳中文 —— 受限",
      "priority": 80,
      "suggestion": "将浏览器首选语言改为 en-US：浏览器设置→语言→添加 English (United States) 并置顶。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 25,
      "signal_id": "language",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^zh-tw|hant",
      "risk": 0,
      "label": "中国台湾中文(Anthropic 支持)",
      "priority": 80,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 26,
      "signal_id": "language",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^en",
      "risk": 0,
      "label": "英语(如 en-US) —— 通过",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 27,
      "signal_id": "language",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.1,
      "label": "其它语言 —— 通过",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 127,
      "signal_id": "maxTouchPoints",
      "verdict": "warn",
      "match_type": "num_eq",
      "pattern": "5",
      "risk": 0.4,
      "label": "Mac 上 maxTouchPoints=5 —— 实为 iPad 伪装桌面 Mac",
      "priority": 95,
      "suggestion": "iPadOS 13+ 伪装 Mac；如需桌面环境请使用真实 Mac 设备。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 128,
      "signal_id": "maxTouchPoints",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^[1-9][0-9]*$",
      "risk": 0.8,
      "label": "Mac 上 maxTouchPoints>0 —— Mac 无触屏产品线",
      "priority": 90,
      "suggestion": "触摸点数与平台不符；Mac 无触屏产品线，请勿伪造 maxTouchPoints。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 196,
      "signal_id": "maxTouchPoints",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "0",
      "risk": 0.4,
      "label": "iOS 上 maxTouchPoints=0 —— 移动端应有触屏",
      "priority": 85,
      "suggestion": "iOS 设备均支持触屏，maxTouchPoints=0 可能为桌面伪装移动 UA。",
      "platform": "ios",
      "browser": ""
    },
    {
      "id": 201,
      "signal_id": "maxTouchPoints",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "^[5-9]|[1-9][0-9]",
      "risk": 0.4,
      "label": "Mac 上 maxTouchPoints≥5 —— 实为 iPadOS 13+ 伪装桌面 Mac",
      "priority": 85,
      "suggestion": "iPadOS 13+ 伪装 Mac 桌面；如需桌面环境请使用真实 Mac 设备。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 165,
      "signal_id": "maxTouchPoints",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^[5-9]|[1-9][0-9]",
      "risk": 0,
      "label": "iOS Safari maxTouchPoints≥5 —— 正常(iPhone 通常 5，iPad 10)",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 179,
      "signal_id": "maxTouchPoints",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^[5-9]|[1-9][0-9]",
      "risk": 0,
      "label": "iOS Chrome maxTouchPoints≥5 —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 188,
      "signal_id": "maxTouchPoints",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^[5-9]|[1-9][0-9]",
      "risk": 0,
      "label": "Android Chrome maxTouchPoints≥5 —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 64,
      "signal_id": "navWebdriver",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "true",
      "risk": 0.9,
      "label": "navigator.webdriver=true —— 自动化/无头控制环境",
      "priority": 100,
      "suggestion": "不要用 Playwright/Puppeteer 无头浏览器访问 Claude；如需自动化请用真实浏览器并清除 webdriver 痕迹。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 65,
      "signal_id": "navWebdriver",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^(false|undefined)$",
      "risk": 0,
      "label": "非自动化环境",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 66,
      "signal_id": "navWebdriver",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.1,
      "label": "未采集",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 67,
      "signal_id": "permissionsMatrix",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "denied=[1-9]\\d* granted=0 prompt=0",
      "risk": 0.7,
      "label": "所有探测权限统一 denied —— 无头/自动化环境特征（真人权限状态混合）",
      "priority": 100,
      "suggestion": "不要用 Playwright/Puppeteer 无头浏览器访问 Claude；如需自动化请用真实浏览器并清除 webdriver 痕迹。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 68,
      "signal_id": "permissionsMatrix",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "granted=0",
      "risk": 0.3,
      "label": "未授予任何探测权限（可能隐私加固或脚本环境）",
      "priority": 80,
      "suggestion": "真人浏览器通常至少授予部分权限(如通知/地理位置)；可主动授予 1-2 个无害权限使状态混合，避免被识别为脚本环境。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 69,
      "signal_id": "permissionsMatrix",
      "verdict": "info",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "权限状态混合（偏向真人）",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 109,
      "signal_id": "pixelRatio",
      "verdict": "red",
      "match_type": "num_eq",
      "pattern": "1.25",
      "risk": 0.8,
      "label": "Mac 上 DPR=1.25 —— Mac 无此 DPI 档位(仅 1 或 2)",
      "priority": 100,
      "suggestion": "设备像素比与平台不符；macOS 仅支持 1.0/2.0，请勿伪造 DPR。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 110,
      "signal_id": "pixelRatio",
      "verdict": "red",
      "match_type": "num_eq",
      "pattern": "1.5",
      "risk": 0.8,
      "label": "Mac 上 DPR=1.5 —— Mac 无此 DPI 档位",
      "priority": 100,
      "suggestion": "设备像素比与平台不符；macOS 仅支持 1.0/2.0，请勿伪造 DPR。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 111,
      "signal_id": "pixelRatio",
      "verdict": "red",
      "match_type": "num_eq",
      "pattern": "1.75",
      "risk": 0.8,
      "label": "Mac 上 DPR=1.75 —— Mac 无此 DPI 档位",
      "priority": 100,
      "suggestion": "设备像素比与平台不符；macOS 仅支持 1.0/2.0，请勿伪造 DPR。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 112,
      "signal_id": "pixelRatio",
      "verdict": "red",
      "match_type": "num_eq",
      "pattern": "2.5",
      "risk": 0.8,
      "label": "Mac 上 DPR=2.5 —— Mac 无此 DPI 档位",
      "priority": 100,
      "suggestion": "设备像素比与平台不符；macOS 仅支持 1.0/2.0，请勿伪造 DPR。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 113,
      "signal_id": "pixelRatio",
      "verdict": "red",
      "match_type": "num_eq",
      "pattern": "3",
      "risk": 0.8,
      "label": "Mac 上 DPR=3 —— Mac 无此 DPI 档位",
      "priority": 100,
      "suggestion": "设备像素比与平台不符；macOS 仅支持 1.0/2.0，请勿伪造 DPR。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 167,
      "signal_id": "pixelRatio",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"2\",\"3\"]",
      "risk": 0,
      "label": "iOS Safari DPR=2 或 3 —— 正常(Plus/Pro Max=3)",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 184,
      "signal_id": "pixelRatio",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"2\",\"3\"]",
      "risk": 0,
      "label": "Android Chrome DPR=2 或 3 —— 正常(旗舰=3)",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 123,
      "signal_id": "platform",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "MacIntel",
      "risk": 0.85,
      "label": "环境判定为 Windows 但 navigator.platform=MacIntel —— 平台篡改",
      "priority": 100,
      "suggestion": "navigator.platform 与环境判定平台不符；请勿篡改 platform。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 124,
      "signal_id": "platform",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "Win32",
      "risk": 0.85,
      "label": "环境判定为 Mac 但 navigator.platform=Win32 —— 平台篡改",
      "priority": 100,
      "suggestion": "navigator.platform 与环境判定平台不符；请勿篡改 platform。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 197,
      "signal_id": "pointerType",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "fine",
      "risk": 0.4,
      "label": "iOS 上 pointerType=fine —— 移动端应为 coarse",
      "priority": 85,
      "suggestion": "iOS 设备为触屏，pointerType=fine 可能为桌面伪装。",
      "platform": "ios",
      "browser": ""
    },
    {
      "id": 198,
      "signal_id": "pointerType",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "fine",
      "risk": 0.4,
      "label": "Android 上 pointerType=fine —— 移动端应为 coarse",
      "priority": 85,
      "suggestion": "Android 设备为触屏，pointerType=fine 可能为桌面伪装。",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 202,
      "signal_id": "pointerType",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "coarse",
      "risk": 0.4,
      "label": "Mac 上 pointerType=coarse —— Mac 应为 fine(无触屏产品线)",
      "priority": 85,
      "suggestion": "Mac 无触屏产品线；pointerType=coarse 可能是 iPad 伪装 Mac。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 203,
      "signal_id": "pointerType",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "coarse",
      "risk": 0.4,
      "label": "Windows 上 pointerType=coarse —— Win 桌面应为 fine(触屏 Win 除外)",
      "priority": 85,
      "suggestion": "Win 桌面多为 fine；pointerType=coarse 可能是触屏 Win 或环境伪造。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 166,
      "signal_id": "pointerType",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "coarse",
      "risk": 0,
      "label": "iOS Safari pointerType=coarse —— 移动端正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 180,
      "signal_id": "pointerType",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "coarse",
      "risk": 0,
      "label": "iOS Chrome pointerType=coarse —— 移动端正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 189,
      "signal_id": "pointerType",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "coarse",
      "risk": 0,
      "label": "Android Chrome pointerType=coarse —— 移动端正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 99,
      "signal_id": "privacyExtension",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "brave-tor",
      "risk": 0.6,
      "label": "Brave/Tor/隐私模式 —— 常被风控重点关注",
      "priority": 95,
      "suggestion": "Brave/Tor 浏览器访问 AI 服务易被风控；建议改用标准 Chrome/Edge。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 98,
      "signal_id": "privacyExtension",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "detected",
      "risk": 0.5,
      "label": "检测到隐私扩展/指纹防护 —— 可能伴随指纹篡改",
      "priority": 90,
      "suggestion": "隐私扩展本身合法，但部分扩展会篡改指纹导致一致性破坏；如需通过风控可临时停用相关扩展。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 100,
      "signal_id": "privacyExtension",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "none",
      "risk": 0,
      "label": "未检测到隐私扩展",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 101,
      "signal_id": "privacyExtension",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未采集",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 171,
      "signal_id": "screenOrientation",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"portrait\",\"portrait-primary\",\"portrait-secondary\",\"landscape\",\"landscape-primary\",\"landscape-secondary\"]",
      "risk": 0,
      "label": "iOS 屏幕方向 portrait/landscape —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": ""
    },
    {
      "id": 172,
      "signal_id": "screenOrientation",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"portrait\",\"portrait-primary\",\"portrait-secondary\",\"landscape\",\"landscape-primary\",\"landscape-secondary\"]",
      "risk": 0,
      "label": "Android 屏幕方向 portrait/landscape —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 114,
      "signal_id": "screenRes",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "1366x768",
      "risk": 0.8,
      "label": "Mac 上屏幕分辨率为 1366x768 —— Mac 无此分辨率",
      "priority": 100,
      "suggestion": "屏幕分辨率与平台不符；请勿伪造分辨率或使用与平台一致的显示器。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 115,
      "signal_id": "screenRes",
      "verdict": "red",
      "match_type": "in",
      "pattern": "[\"3024x1964\",\"2560x1664\",\"2880x1864\",\"3456x2234\"]",
      "risk": 0.8,
      "label": "Windows 上出现 Mac 独有物理分辨率 —— Win 显示器无此规格",
      "priority": 100,
      "suggestion": "屏幕分辨率与平台不符；请勿伪造分辨率或使用与平台一致的显示器。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 116,
      "signal_id": "screenRes",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "1920x1080",
      "risk": 0.4,
      "label": "Mac 上屏幕为 1920x1080 —— 可疑(外接显示器除外)",
      "priority": 70,
      "suggestion": "Mac 原生屏无 1920x1080；若为外接显示器可忽略。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 117,
      "signal_id": "screenRes",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"3024x1964\",\"2560x1664\",\"2880x1864\",\"3456x2234\",\"1512x982\",\"1728x1117\",\"2880x1800\",\"2560x1600\"]",
      "risk": 0,
      "label": "Mac 原生 Retina 物理分辨率 —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 118,
      "signal_id": "screenRes",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"1920x1080\",\"1366x768\",\"2560x1440\",\"3840x2160\",\"1600x900\",\"1280x720\"]",
      "risk": 0,
      "label": "Windows 常见分辨率 —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 170,
      "signal_id": "screenRes",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"390x844\",\"414x896\",\"430x932\",\"393x852\",\"360x780\",\"360x800\",\"412x915\",\"320x568\",\"375x812\",\"428x926\"]",
      "risk": 0,
      "label": "iOS Safari 屏幕分辨率属于 iPhone 常见 CSS 像素 —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 56,
      "signal_id": "speechLocale",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "zh-cn|zh_cn|zh-hans",
      "risk": 1,
      "label": "系统安装简体中文语音包 —— 强中文环境信号",
      "priority": 100,
      "suggestion": "在操作系统语音设置中删除简体中文语音包：Windows 设置→时间和语言→语音→添加/移除语音；macOS 系统设置→辅助功能→朗读内容。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 57,
      "signal_id": "speechLocale",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "zh-hk|zh-mo|zh-tw",
      "risk": 0.4,
      "label": "系统安装港澳/台湾中文语音包",
      "priority": 80,
      "suggestion": "在操作系统语音设置中删除港澳/台湾中文语音包：Windows 设置→时间和语言→语音→添加/移除语音；macOS 系统设置→辅助功能→朗读内容→语音。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 58,
      "signal_id": "speechLocale",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未安装中文语音包",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 173,
      "signal_id": "standaloneMode",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"standalone\",\"browser\"]",
      "risk": 0,
      "label": "iOS Safari 模式 standalone/browser —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": ""
    },
    {
      "id": 174,
      "signal_id": "standaloneMode",
      "verdict": "white",
      "match_type": "in",
      "pattern": "[\"standalone\",\"browser\"]",
      "risk": 0,
      "label": "Android PWA 模式 standalone/browser —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 17,
      "signal_id": "timezone",
      "verdict": "red",
      "match_type": "in",
      "pattern": "[\"Asia/Shanghai\",\"Asia/Urumqi\",\"Asia/Chongqing\",\"Asia/Chungking\",\"Asia/Harbin\",\"Asia/Kashgar\"]",
      "risk": 1,
      "label": "中国大陆时区(Claude Code 真实读取的红线信号)",
      "priority": 100,
      "suggestion": "将操作系统时区改为目标出口地区(如 America/New_York)；Windows: 设置→时间和语言→时区；macOS: 系统设置→日期与时间。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 18,
      "signal_id": "timezone",
      "verdict": "warn",
      "match_type": "in",
      "pattern": "[\"Asia/Hong_Kong\",\"Asia/Macau\"]",
      "risk": 0.6,
      "label": "中国港澳时区(Anthropic 受限地区)",
      "priority": 90,
      "suggestion": "将操作系统时区改为目标出口地区(如 America/New_York)；Windows: 设置→时间和语言→时区；macOS: 系统设置→日期与时间。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 19,
      "signal_id": "timezone",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "Asia/Taipei",
      "risk": 0,
      "label": "中国台湾时区(Anthropic 列为支持，不计违规)",
      "priority": 90,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 20,
      "signal_id": "timezone",
      "verdict": "white",
      "match_type": "regex",
      "pattern": "^(America|Europe|Australia|Pacific)/",
      "risk": 0,
      "label": "欧美/澳时区 —— 通过",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 21,
      "signal_id": "timezone",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.1,
      "label": "其它时区",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 102,
      "signal_id": "timezoneMeasured",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "inconsistent",
      "risk": 0.75,
      "label": "Intl 时区与时区偏移不一致 —— 时区被篡改",
      "priority": 100,
      "suggestion": "不要单独篡改 Intl 时区或 getTimezoneOffset；如需改时区请在操作系统层面统一修改，二者会自动一致。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 103,
      "signal_id": "timezoneMeasured",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "consistent",
      "risk": 0,
      "label": "时区与时区偏移一致",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 104,
      "signal_id": "timezoneMeasured",
      "verdict": "info",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "无法判定",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 32,
      "signal_id": "timezoneOffset",
      "verdict": "warn",
      "match_type": "num_eq",
      "pattern": "-480",
      "risk": 0.7,
      "label": "时区偏移 UTC+8 —— 与中国大陆一致",
      "priority": 100,
      "suggestion": "将操作系统时区改为目标出口地区(如 America/New_York)；Windows: 设置→时间和语言→时区；macOS: 系统设置→日期与时间。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 33,
      "signal_id": "timezoneOffset",
      "verdict": "warn",
      "match_type": "num_eq",
      "pattern": "-360",
      "risk": 0.4,
      "label": "时区偏移 UTC+6 —— 可能新疆真实时间",
      "priority": 90,
      "suggestion": "将操作系统时区改为目标出口地区(如 America/New_York)；Windows: 设置→时间和语言→时区；macOS: 系统设置→日期与时间。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 34,
      "signal_id": "timezoneOffset",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "非中国时区偏移",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 192,
      "signal_id": "uaFormFactors",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Mobile",
      "risk": 0,
      "label": "Android Chrome uaFormFactors 含 Mobile —— 移动端正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": "chrome"
    },
    {
      "id": 193,
      "signal_id": "uaFormFactors",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Desktop",
      "risk": 0,
      "label": "桌面 Chrome uaFormFactors 含 Desktop —— 桌面端正常",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "chrome"
    },
    {
      "id": 194,
      "signal_id": "uaFormFactors",
      "verdict": "info",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0,
      "label": "uaFormFactors=n/a —— 旧版 Chrome 不支持该字段，无法判定",
      "priority": 0,
      "suggestion": "",
      "platform": "android",
      "browser": "chrome"
    },
    {
      "id": 204,
      "signal_id": "uaMobile",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "true",
      "risk": 0.85,
      "label": "Windows 上 uaMobile=true —— Windows 桌面不应声明移动端",
      "priority": 100,
      "suggestion": "Windows 桌面 uaMobile=true 为矛盾信号；请勿在桌面端伪造移动 UA。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 164,
      "signal_id": "uaMobile",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "undefined",
      "risk": 0,
      "label": "iOS Safari 不支持 UA-CH，uaMobile=undefined —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 178,
      "signal_id": "uaMobile",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "undefined",
      "risk": 0,
      "label": "iOS Chrome 不支持 UA-CH(WKWebView)，uaMobile=undefined —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 182,
      "signal_id": "uaMobile",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "n/a",
      "risk": 0,
      "label": "iOS Chrome 无 UA-CH uaMobile=n/a —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 183,
      "signal_id": "uaMobile",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "true",
      "risk": 0,
      "label": "Android Chrome uaMobile=true —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": "chrome"
    },
    {
      "id": 59,
      "signal_id": "uaModel",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "harmonyos|openharmony|huawei|honor",
      "risk": 0.8,
      "label": "设备型号为鸿蒙/华为/荣耀 —— 坐实国产设备",
      "priority": 100,
      "suggestion": "如需规避，使用海外品牌设备或在国际版系统配置文件中操作；无法在国产设备上完全消除该信号。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 60,
      "signal_id": "uaModel",
      "verdict": "warn",
      "match_type": "regex",
      "pattern": "xiaomi|redmi|poco|oppo|vivo|realme|oneplus|nubia|zte|lenovo",
      "risk": 0.5,
      "label": "设备型号为小米/OPPO/vivo 等国产(部分海外销售)",
      "priority": 90,
      "suggestion": "如需规避，使用海外品牌设备或在国际版系统配置文件中操作；无法在国产设备上完全消除该信号。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 61,
      "signal_id": "uaModel",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未识别为国产设备型号",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 121,
      "signal_id": "vendor",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "Apple Computer, Inc.",
      "risk": 0.85,
      "label": "Windows 上 vendor=Apple Computer, Inc. —— Safari 无现代 Windows 版(2012 停更)",
      "priority": 100,
      "suggestion": "浏览器 vendor 与平台不符；Safari 仅在 Apple 平台，请勿伪造 vendor。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 122,
      "signal_id": "vendor",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "Apple Computer, Inc.",
      "risk": 0.85,
      "label": "Linux 上 vendor=Apple Computer, Inc. —— Safari 无 Linux 版",
      "priority": 100,
      "suggestion": "浏览器 vendor 与平台不符；Safari 仅在 Apple 平台，请勿伪造 vendor。",
      "platform": "linux",
      "browser": ""
    },
    {
      "id": 38,
      "signal_id": "vendorFonts",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^[2-9]",
      "risk": 1,
      "label": "检测到多个国产厂商字体 —— 近乎坐实",
      "priority": 100,
      "suggestion": "卸载 MiSans/HarmonyOS Sans/OPPO Sans 等国产厂商字体；这些字体几乎只在国产环境出现。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 39,
      "signal_id": "vendorFonts",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^1$",
      "risk": 0.8,
      "label": "检测到 1 个国产厂商字体 —— 高风险",
      "priority": 90,
      "suggestion": "卸载 MiSans/HarmonyOS Sans/OPPO Sans 等国产厂商字体；这些字体几乎只在国产环境出现。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 40,
      "signal_id": "vendorFonts",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未检测到国产厂商字体",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 91,
      "signal_id": "versionLie",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "lie",
      "risk": 0.85,
      "label": "UA 报告版本与实际特性支持不符 —— UA 被篡改",
      "priority": 100,
      "suggestion": "不要篡改 User-Agent；如需改 UA 请同步使用对应版本内核的浏览器，避免版本与特性不一致。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 157,
      "signal_id": "versionLie",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "lie",
      "risk": 0.85,
      "label": "Chrome UA 版本与特性不符 —— :has() 105+ / WebGPU 113+ 边界",
      "priority": 100,
      "suggestion": "UA 声称的版本与实际特性支持不符；请勿篡改 User-Agent。",
      "platform": "",
      "browser": "chrome"
    },
    {
      "id": 158,
      "signal_id": "versionLie",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "lie",
      "risk": 0.85,
      "label": "Firefox UA 版本与特性不符 —— :has() 121+ 边界",
      "priority": 100,
      "suggestion": "UA 声称的版本与实际特性支持不符；请勿篡改 User-Agent。",
      "platform": "",
      "browser": "firefox"
    },
    {
      "id": 159,
      "signal_id": "versionLie",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "lie",
      "risk": 0.85,
      "label": "Safari UA 版本与特性不符 —— :has() 15.4+ 边界",
      "priority": 100,
      "suggestion": "UA 声称的版本与实际特性支持不符；请勿篡改 User-Agent。",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 160,
      "signal_id": "versionLie",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "lie",
      "risk": 0.85,
      "label": "Edge UA 版本与特性不符 —— :has() 105+ 边界",
      "priority": 100,
      "suggestion": "UA 声称的版本与实际特性支持不符；请勿篡改 User-Agent。",
      "platform": "",
      "browser": "edge"
    },
    {
      "id": 92,
      "signal_id": "versionLie",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "ok",
      "risk": 0,
      "label": "UA 版本与特性支持一致",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 93,
      "signal_id": "versionLie",
      "verdict": "info",
      "match_type": "exact",
      "pattern": "unknown",
      "risk": 0,
      "label": "无法判定(非 Chromium 内核或版本不可识别)",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 94,
      "signal_id": "versionLie",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0,
      "label": "未采集",
      "priority": -1,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 105,
      "signal_id": "webglRenderer",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "Direct3D11|D3D11|vs_5_0 ps_5_0",
      "risk": 0.9,
      "label": "Mac 上 WebGL renderer 含 Direct3D11 —— Mac 不可能走 D3D11 后端",
      "priority": 100,
      "suggestion": "WebGL renderer 与平台不符；请勿篡改 GPU 信息，使用与真实平台一致的浏览器环境。",
      "platform": "mac",
      "browser": ""
    },
    {
      "id": 106,
      "signal_id": "webglRenderer",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "Metal Renderer|Apple M[1-9]",
      "risk": 0.9,
      "label": "Windows 上 WebGL renderer 含 Metal/Apple M —— Win 不可能走 Metal 后端",
      "priority": 100,
      "suggestion": "WebGL renderer 与平台不符；请勿篡改 GPU 信息，使用与真实平台一致的浏览器环境。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 107,
      "signal_id": "webglRenderer",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "(?=.*Apple M)(?=.*Direct3D11)",
      "risk": 0.95,
      "label": "WebGL renderer 同时含 Apple M 与 Direct3D11 —— 不可能组合",
      "priority": 100,
      "suggestion": "WebGL renderer 含矛盾标记；请勿篡改 GPU 信息。",
      "platform": "win,mac",
      "browser": ""
    },
    {
      "id": 199,
      "signal_id": "webglRenderer",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "Direct3D11",
      "risk": 0.9,
      "label": "iOS 上 WebGL renderer 含 Direct3D11 —— iOS 不可能走 D3D11 后端",
      "priority": 100,
      "suggestion": "WebGL renderer 与平台不符；iOS 仅支持 Metal/GPU Family，不应出现 D3D11。",
      "platform": "ios",
      "browser": ""
    },
    {
      "id": 200,
      "signal_id": "webglRenderer",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "Direct3D11",
      "risk": 0.9,
      "label": "Android 上 WebGL renderer 含 Direct3D11 —— Android 不可能走 D3D11 后端",
      "priority": 100,
      "suggestion": "WebGL renderer 与平台不符；Android 仅支持 OpenGL ES/Vulkan/ANGLE，不应出现 D3D11。",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 152,
      "signal_id": "webglRenderer",
      "verdict": "red",
      "match_type": "regex",
      "pattern": "^(?!.*Apple GPU).+$",
      "risk": 0.85,
      "label": "Safari 上 renderer 非 Apple GPU —— 伪造",
      "priority": 90,
      "suggestion": "Safari 应掩码为 Apple GPU，非掩码值说明环境被篡改。",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 108,
      "signal_id": "webglRenderer",
      "verdict": "warn",
      "match_type": "contains",
      "pattern": "Google SwiftShader",
      "risk": 0.6,
      "label": "WebGL renderer 为 SwiftShader 软件渲染 —— 虚拟机/无头/无驱动可疑",
      "priority": 85,
      "suggestion": "软件渲染多为虚拟机或无头环境；如需正常判定请使用真实 GPU 环境。",
      "platform": "win,mac",
      "browser": ""
    },
    {
      "id": 153,
      "signal_id": "webglRenderer",
      "verdict": "warn",
      "match_type": "contains",
      "pattern": "SwiftShader",
      "risk": 0.6,
      "label": "Chrome 上 renderer=SwiftShader —— stealth 绕过痕迹",
      "priority": 85,
      "suggestion": "SwiftShader 软件渲染多为无头或 stealth 环境；请使用真实 GPU。",
      "platform": "",
      "browser": "chrome"
    },
    {
      "id": 151,
      "signal_id": "webglRenderer",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Apple GPU",
      "risk": 0,
      "label": "Safari 上 renderer=Apple GPU —— 正常掩码",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 161,
      "signal_id": "webglRenderer",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Apple GPU",
      "risk": 0,
      "label": "iOS Safari renderer=Apple GPU —— 正常掩码",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 175,
      "signal_id": "webglRenderer",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "Apple GPU",
      "risk": 0,
      "label": "iOS Chrome 基于 WKWebView renderer=Apple GPU —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 187,
      "signal_id": "webglRenderer",
      "verdict": "white",
      "match_type": "contains",
      "pattern": "ANGLE",
      "risk": 0,
      "label": "Android Chrome renderer 含 ANGLE —— 正常(Adreno/Mali/PowerVR 经 ANGLE 转译)",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": ""
    },
    {
      "id": 125,
      "signal_id": "webglVendor",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "Apple Inc.",
      "risk": 0.85,
      "label": "Windows 上 WebGL vendor=Apple Inc. —— Mac Safari vendor 标记",
      "priority": 100,
      "suggestion": "WebGL vendor 与平台不符；请勿篡改 GPU vendor 信息。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 126,
      "signal_id": "webglVendor",
      "verdict": "red",
      "match_type": "contains",
      "pattern": "Intel Inc.",
      "risk": 0.8,
      "label": "Windows 上 WebGL vendor=Intel Inc.(带点) —— Mac Intel 标记",
      "priority": 95,
      "suggestion": "WebGL vendor 与平台不符；Mac Intel vendor 带点，Win 无。",
      "platform": "win",
      "browser": ""
    },
    {
      "id": 156,
      "signal_id": "webgpu",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "unsupported",
      "risk": 0.4,
      "label": "Chrome 上 WebGPU 不支持 —— Chrome≥113 应支持",
      "priority": 85,
      "suggestion": "Chrome≥113 应支持 WebGPU，缺失可能为旧版或环境篡改。",
      "platform": "",
      "browser": "chrome"
    },
    {
      "id": 154,
      "signal_id": "webgpu",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "unsupported",
      "risk": 0,
      "label": "Safari 上 WebGPU 不支持 —— Safari 26+ 才默认启用，旧版正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "safari"
    },
    {
      "id": 155,
      "signal_id": "webgpu",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "unsupported",
      "risk": 0,
      "label": "Firefox 上 WebGPU 不支持 —— Firefox 141+(2025-07) Windows 版支持，Linux/Mac 逐步铺开",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": "firefox"
    },
    {
      "id": 52,
      "signal_id": "webrtcLeak",
      "verdict": "warn",
      "match_type": "exact",
      "pattern": "leak",
      "risk": 0.8,
      "label": "WebRTC 暴露的真实公网 IP 与出口 IP 不一致 —— 代理被绕过",
      "priority": 100,
      "suggestion": "在浏览器设置中禁用 WebRTC 或使用支持 WebRTC 代理的扩展(如 disable WebRTC)；Chrome 可加启动参数 --force-webrtc-ip-handling-policy=disable_non_proxied_udp。",
      "platform": "",
      "browser": ""
    },
    {
      "id": 53,
      "signal_id": "webrtcLeak",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "match",
      "risk": 0,
      "label": "WebRTC 公网 IP 与出口一致 —— 通过",
      "priority": 60,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 54,
      "signal_id": "webrtcLeak",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "none",
      "risk": 0.1,
      "label": "WebRTC 未暴露公网 IP —— 通过",
      "priority": 50,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 55,
      "signal_id": "webrtcLeak",
      "verdict": "white",
      "match_type": "default",
      "pattern": "",
      "risk": 0.1,
      "label": "WebRTC 未采集",
      "priority": 0,
      "suggestion": "",
      "platform": "",
      "browser": ""
    },
    {
      "id": 195,
      "signal_id": "windowChrome",
      "verdict": "red",
      "match_type": "exact",
      "pattern": "present",
      "risk": 0.85,
      "label": "iOS Safari 上 window.chrome 存在 —— iOS Safari 不应有 window.chrome",
      "priority": 90,
      "suggestion": "iOS 平台不应出现 window.chrome；可能为桌面 Chrome 伪造移动 UA。",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 169,
      "signal_id": "windowChrome",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "absent",
      "risk": 0,
      "label": "iOS Safari 无 window.chrome —— 正常基线",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "safari"
    },
    {
      "id": 181,
      "signal_id": "windowChrome",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "absent",
      "risk": 0,
      "label": "iOS Chrome 无 window.chrome(WKWebView) —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "ios",
      "browser": "chrome"
    },
    {
      "id": 191,
      "signal_id": "windowChrome",
      "verdict": "white",
      "match_type": "exact",
      "pattern": "present",
      "risk": 0,
      "label": "Android Chrome 有 window.chrome —— 正常",
      "priority": 50,
      "suggestion": "",
      "platform": "android",
      "browser": "chrome"
    }
  ],
  "regions": [
    {
      "code": "HK",
      "name_zh": "中国香港",
      "status": "restricted",
      "note": "未列入公开支持名单"
    },
    {
      "code": "MO",
      "name_zh": "中国澳门",
      "status": "restricted",
      "note": "未列入公开支持名单"
    },
    {
      "code": "DE",
      "name_zh": "德国",
      "status": "supported",
      "note": ""
    },
    {
      "code": "GB",
      "name_zh": "英国",
      "status": "supported",
      "note": ""
    },
    {
      "code": "JP",
      "name_zh": "日本",
      "status": "supported",
      "note": ""
    },
    {
      "code": "KR",
      "name_zh": "韩国",
      "status": "supported",
      "note": ""
    },
    {
      "code": "SG",
      "name_zh": "新加坡",
      "status": "supported",
      "note": ""
    },
    {
      "code": "TW",
      "name_zh": "中国台湾",
      "status": "supported",
      "note": "Anthropic 官方名单列为支持地区"
    },
    {
      "code": "US",
      "name_zh": "美国",
      "status": "supported",
      "note": ""
    },
    {
      "code": "BY",
      "name_zh": "白俄罗斯",
      "status": "unsupported",
      "note": "受限"
    },
    {
      "code": "CN",
      "name_zh": "中国大陆",
      "status": "unsupported",
      "note": "不在 Anthropic 公开支持名单"
    },
    {
      "code": "CU",
      "name_zh": "古巴",
      "status": "unsupported",
      "note": "受限"
    },
    {
      "code": "IR",
      "name_zh": "伊朗",
      "status": "unsupported",
      "note": "受限"
    },
    {
      "code": "KP",
      "name_zh": "朝鲜",
      "status": "unsupported",
      "note": "受限"
    },
    {
      "code": "RU",
      "name_zh": "俄罗斯",
      "status": "unsupported",
      "note": "受限"
    },
    {
      "code": "SY",
      "name_zh": "叙利亚",
      "status": "unsupported",
      "note": "受限"
    }
  ]
}