Skip to content

自定义规则

自定义规则用于补内置规则没有覆盖到的站点,或在本地先验证一条新规则是否可靠。

表单填写

字段必填说明
技术名称弹窗里显示的名字,比如 MyCMS
分类选一个内置分类(23 个)或自己输入新分类。默认「其他库」。Select 组件支持自由输入,分类列表里没有的也能写。
类型说明给自己看的注释,比如 企业 CMS第三方支付。会显示在 evidence 前缀,可以为空。
置信度高 / 中 / 低,默认「中」
匹配方式关键词 / 正则表达式,默认「正则表达式」
官网 / 仓库 URL必须 http://https://。填了之后弹窗里技术名可点击跳转

下方还有四个区域:

  • 匹配范围:决定下面的 patterns / selectors / globals 去哪些数据源里匹配

    • 页面 URL:当前网页地址
    • 资源 URL:脚本 / 样式 / iframe 加载的资源
    • DOM / 源码:页面 outerHTML
    • 响应头:主文档 + API + iframe 的响应头
    • 动态资源:MutationObserver 持续累积的资源
  • 匹配规则(patterns):一行一条。关键词模式下是字面字符串包含;正则模式下是 JS 正则源(不带 /.../i 包裹,i 标志由扩展自动加)

  • CSS 选择器(selectors):一行一个 selector,比如 [data-v-app]#__next。匹配范围必须包含「DOM / 源码」

  • 全局变量(globals):一行一个,比如 ReactVue.config__NEXT_DATA__。命中即高置信度

添加 / 更新

  • 添加规则(绿色主按钮):把当前表单存为新规则
  • 更新当前规则:先在右下角列表点编辑某条规则进入"编辑模式",改完按这个保存

最后需要点页面右上角「保存设置」,规则才会写入 storage。

已添加规则列表

显示在页面底部,每条带:

  • 标题:规则的技术名称
  • 元信息:分类 · 类型 · 置信度 · 匹配方式 · N 条 patterns
  • 操作:「编辑」「删除」两个按钮(删除按钮 hover 变红)

验证规则

每次添加 / 更新 / 保存设置时,会做以下校验:

  • 必须有名字
  • patterns / selectors / globals 至少填一个
  • 匹配范围至少勾一项
  • url 字段如填则必须 http(s)😕/
  • patterns(正则模式下)每条都要能 new RegExp 通过
  • selectors 每条都要能 document.createDocumentFragment().querySelector 通过
  • globals 每条都要符合 MyCMSgoogle.maps 这种点分隔变量名

校验失败会浮出红色提示气泡,列出最多 6 条问题。

例子:简单关键词

识别 ExampleCMS:

text
技术名称: ExampleCMS
分类:     网站程序
匹配方式: 关键词
匹配规则:
  examplecms
  X-Generator: ExampleCMS
匹配范围: [x] 页面 URL [x] 资源 URL [x] DOM / 源码 [x] 响应头

例子:识别 WordPress 主题

text
技术名称: WordPress 主题: oceanwp
分类:     主题 / 模板
匹配方式: 关键词
匹配规则:
  /wp-content/themes/oceanwp/
匹配范围: [x] 资源 URL [x] DOM / 源码

例子:识别动态加载的支付 SDK

支付按钮点了之后才会请求脚本,所以勾「动态资源」:

text
技术名称: ExamplePay
分类:     支付系统
类型说明: 第三方支付
匹配方式: 关键词
匹配规则:
  pay.example.com
  examplepay-sdk
匹配范围: [x] 动态资源

例子:用正则识别带版本号的库文件

text
技术名称: ExampleLib
分类:     前端库
匹配方式: 正则表达式
匹配规则:
  examplelib-[0-9.]+\.min\.js
匹配范围: [x] 资源 URL [x] 动态资源

降低误报

  • 别用太通用的关键词,比如 app main login,几乎所有网站都有
  • 优先写完整域名 pay.example.com 而不是 pay
  • 优先写特殊路径 /wp-content/themes/oceanwp/ 而不是 oceanwp
  • 不确定就把置信度设成「低」,弹窗里会显示灰色药丸提示这只是猜测
  • 保存规则后一定要刷新目标网页再打开弹窗看效果,否则缓存还是旧的

基于 CC BY-NC-SA 4.0 协议发布