• 谦君

    本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

    - 我的帖子已经打上 开源推广 标签: 是

    - 我的开源项目完整开源,无未开源部分: 是

    - 我的开源项目已链接认可 LINUX DO 社区: 是

    - 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是

    - 以上选择我承诺是永久有效的,接受社区和佬友监督: 是

    以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出

    图片

    制作这款浏览器插件的起因是因为之前一直用的是wappalyzer, 然后我发现我有些网站居然没法识别出有哪些技术栈, 后面又试了市面上林林总总其他的技术栈检测插件都感觉不尽人意, 所以我就制作了这款插件

    项目说明

    StackPrism(以下简称 栈棱镜)是一款基于 Manifest V3 的网页技术栈识别扩展,支持 Chrome / Edge / Firefox。

    不同于市面上多数只看 HTML 资源 URL 的同类工具,栈棱镜把检测拆成 4 个独立通道并行收集线索:

    - 静态扫描:页面加载时由注入脚本扫 DOM、全局变量、CSS 类名、CSS 变量、<meta>

    - 响应头观察:Service Worker 监听 webRequest.onHeadersReceived,捕获主文档/XHR/iframe 的响应头与 HTTP 版本

    - 动态资源监听:content script 用 PerformanceObserver + MutationObserver 累积页面交互后新加载的脚本/样式/iframe/feed

    - JS 版权注释扫描:后台异步抓主 bundle 的开头版权注释,识别打包进 index/main/vendor chunk 的第三方依赖

    4 路结果合并去重后,按 50+ 个类目分组展示,并对伪造响应头、自指检测、模糊误报等场景做了主动收敛。

    技术特性

    - MV3 service worker 架构:无后台常驻进程,事件驱动,内存占用低

    - 规则即数据:50+ 个 JSON 规则文件(public/rules/)集中维护,构建期预编译 hint prefilter 与 keyword 合并正则,运行时只跑命中候选

    识别覆盖

    维度 |
    类目示例 |

    前端 |
    前端框架 / UI 框架 / 前端库 / 构建与运行时 |

    服务端 |
    Web 服务器 / 后端框架 / CDN 与托管 / 开发语言 |

    内容 |
    网站程序 / 主题模板 / CMS / 电商平台 / RSS |

    第三方 |
    SaaS / 探针监控 / AI 大模型 / 第三方登录 / 支付 |

    营销 |
    广告 / 营销 / 统计 / 分析 / 标签管理 |

    安全 |
    WAF / HTTPS / HTTP/2 / HTTP/3 / CSP / Cookie 同意 |

    安装

    从源码加载(开发模式):```
    git clone https://github.com/setube/stackprism.git
    cd stackprism
    bun install
    bun run build # Chrome / Edge
    bun run build:firefox # Firefox
    ```Chrome / Edge:

    - 打开 chrome://extensions 或 edge://extensions

    - 右上角开启「开发者模式」

    - 点「加载已解压的扩展程序」,选 dist/ 目录

    - 访问任意网页,扩展图标显示识别数量

    Firefox:

    - 打开 about:debugging#/runtime/this-firefox

    - 点「临时载入附加组件」,选 dist-firefox/manifest.json

    - 或者运行 bun run build:firefox 后在 release/ 目录获取 .xpi 文件双击安装

    开发```
    bun run dev # 开发模式 + HMR
    bun run typecheck # vue-tsc 类型检查
    bun run lint # ESLint
    bun run build # 生产构建(含规则预编译)
    bun run build:firefox # Firefox 构建 + .xpi 打包
    bun run docs:dev # VitePress 文档站本地预览

    
    栈棱镜的规则系统是数据驱动的——绝大多数检测改规则 JSON 即可,无需碰代码。
    
    - **加载清单**:public/rules/index.json 列出所有要加载的规则文件
    
    - **页面规则**:`public/rules/page/*.json` 处理页面源码、DOM、资源 URL、动态资源
    
    - **响应头规则**:`public/rules/headers/*.json` 处理服务端响应头与 Cookie
    
    - **自指抑制**:public/rules/self-host-suppress.json 当用户在某主流站点上时跳过同名识别
    
    - **技术链接**:public/tech-links.json 集中维护技术名 → 官网/仓库 URL 的映射,识别结果可点击跳转
    
    - **构建期 prefilter**:vite.config.ts 的 `precompileRulesPlugin` 在 `closeBundle` 阶段为每条 leaf rule 注入 `__hints`(最长 literal 段去重排序取前 3)和 `__keywordCombined`(keyword 合并正则),运行时 `rule-matcher.ts` 优先用它们做候选过滤
    
    新规则的字段:```
    {
      "name": "技术名称",
      "category": "前端框架", // 50+ 类目之一
      "patterns": ["正则或关键词"],
      "matchType": "regex", // 或 "keyword"
      "matchIn": ["html", "resources", "url", "headers", "dynamic"],
      "confidence": "高", // 高 / 中 / 低
      "kind": "类型说明",
      "selectors": ["CSS 选择器"],
      "globals": ["window 全局变量名"],
      "classPrefixes": ["类名前缀"]
    }

    - 优先用高特征信号:响应头、专属资源 URL、<meta name="generator">、window.<global>、独家 CSS 选择器、JS 版权注释、官方 SDK 包名

    - 避免短或过宽的 keyword(spring / phoenix / column / container 这些会命中竞品讨论、Bootstrap 与 Tailwind 通用类)

    - 优先限定 matchIn,优先 resources / url / headers 而不是裸 html,减少正文误报

    注意事项

    - 后端识别不保证完整:很多站点隐藏 Server / X-Powered-By 等响应头,后端结果会以"线索 + 置信度"形式展示

    - 伪造响应头:扩展会主动识别 ≥4 种主体身份字段同时存在的伪造场景,将相关类目降级为低置信度并附警示。但单个伪造头无法识别,建议结合其他线索判断

    - 首次安装请刷新目标页:让 service worker 捕获主文档响应头

    - 源代码搜索是 DOM 快照:基于当前页面的 outerHTML,不等同于服务器最初返回的原始 HTML

    - Chrome 系统页 / 商店页 / 内置页通常不允许注入检测脚本

    - 动态监控异步累积:content script 在后台累计交互后新加载的资源,重新打开 popup 可看到合并结果

    参与共建

    栈棱镜目前内置 50+ 类目下 2000+ 条识别规则,但前端生态变化快,新框架、新 SaaS、新规则误报都欢迎参与:

    - Bug / 误识 / 漏识反馈:Issues — popup 上直接点「识别不准确」按钮会自动填好议题模板

    - 规则贡献:扩展设置页点「提交规则贡献」,或直接 PR 到 public/rules/

    - 讨论与提案:Discussions

    提交代码前请跑 bun run typecheck && bun run lint && bun run build 三个检查全过。

    插件截图

    图片

    开源仓库

    github.com

    图片

    GitHub - setube/stackprism: StackPrism是一款用于检测网页技术栈的浏览器插件。

    StackPrism是一款用于检测网页技术栈的浏览器插件。

    开发文档

    图片

    stackprism.wenzi.games

    StackPrism

    网页技术栈检测扩展 · 使用文档

    chrome扩展商店

    图片

    chromewebstore.google.com

    图片

    StackPrism - Chrome 应用商店

    StackPrism 用于检测网页前端、后端、CDN、SaaS、广告营销、统计、登录、支付、网站程序和主题模板线索。

    edge扩展商店

    microsoftedge.microsoft.com

    StackPrism - Microsoft Edge Add-ons

    Make Microsoft Edge your own with extensions that help you personalize the browser and be more productive.

    火狐扩展商店

    addons.mozilla.org

    Client Challenge

    主楼
  • 文月

    有点厉害哦,discourse也能检测到

    图片

    #1
  • script

    好东西,直接平替wappalyzer

    #2
  • 国家电网

    体验了一会,感觉挺不错。

    感谢大佬。

    #3
  • lemon299

    感谢佬,马上就去体验一波

    #4
  • BIN2450

    可以的 ,很强

    图片

    #5
  • neoooooo0o

    可以的,试用了一下感觉不错

    #6
  • Thron0C

    (帖子已被作者删除)

    #7
  • Thron0C

    mark以下,马上就去体验一波

    #8

发表回复

登录后回复