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):一行一個,比如 React、Vue.config、__NEXT_DATA__。命中即高可信度

新增 / 更新 ​

  • 新增規則(綠色主按鈕):把當前表單存為新規則
  • 更新目前規則:先在右下角清單點編輯某條規則進入「編輯模式」,改完按這個儲存

最後需要點頁面右上角「儲存設定」,規則才會寫入 storage。

已新增規則清單 ​

顯示在頁面底部,每條帶:

  • 標題:規則的技術名稱
  • 元資訊:分類 · 類型 · 可信度 · 比對方式 · N 條 patterns
  • 操作:「編輯」「刪除」兩個按鈕(刪除按鈕 hover 變紅)

驗證規則 ​

每次新增 / 更新 / 儲存設定時,會做以下驗證:

  • 必須有名稱
  • patterns / selectors / globals 至少填一個
  • 比對範圍至少勾一項
  • url 欄位如填則必須 http(s)😕/
  • patterns(正規表達式模式下)每條都要能 new RegExp 通過
  • selectors 每條都要能 document.createDocumentFragment().querySelector 通過
  • globals 每條都要符合 MyCMS 或 google.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
  • 不確定就把可信度設成「低」,彈窗裡會顯示灰色標籤提示這只是猜測
  • 儲存規則後一定要重新整理目標網頁再開啟彈窗看效果,否則快取還是舊的

基於 MIT 協議發布