Skip to content

Releases: setube/stackprism

StackPrism v1.3.70

13 May 10:09

Choose a tag to compare

新增

  • 多路径技术版本号识别 + popup 渲染:
    • globals 命中后从 window.<lib>.VERSION / 自定义 path 抽(jQuery 走 jQuery.fn.jquery、lit-html 走 litHtmlVersions 数组、core-js 走 __core-js_shared__.versions[].version)
    • selectors 命中后从 DOM 元素属性抽(styled-components 走 <style data-styled-version>)
    • bundle license 注释:15 个主流库手写 versionPattern capture group,其余 bundle-license 规则自动从 rule.name 推 token 走通用启发(<Name>\s+v?X.Y.Z / <npm>@X.Y.Z)
    • 资源 URL 命中:cdnjs / unpkg / 自托管命名(@scope/lib@X.Y.Z/lib/X.Y.Z//lib-X.Y.Z.min.js)
    • 响应头 Server: nginx/1.29.8X-Powered-By: PHP/8.2.10 抽首段版本号
  • TechChip 图标四档 fallback:本地 skillscdn.simpleicons.org → 官网 /favicon.ico → 官网 HTML 解析 link[rel="icon"]link[rel="apple-touch-icon"];同 origin 进程级 Promise 缓存,只 fetch 一次 HTML
  • 新规则:
    • Reka UI(Vue 版 Radix 后继),靠 useGraceArea- / useForwardExpose- / useTypeahead- / useFocusGuards- 等 Reka 独家 hook chunk 命名识别
    • shadcn-vue,组合判定(minPatternMatches: 5),要求 5+ 个 shadcn 标志组件 SFC chunk 同时出现才命中
    • Open Graph(meta[property^="og:"])、Priority Hints([fetchpriority])
    • alt-svc 响应头通告 HTTP/3(中置信度,跟 performance.getEntries() 实际协商出来的 HTTP/3 合并显示)
    • AWS 总品牌(响应头特征覆盖 CloudFront / S3 / API Gateway / ELB),手写 __hints 避开预筛
  • 新规则 schema 字段:versionPattern / versionFrom / versionFromAttribute / minPatternMatches / __hints 显式声明

修复

  • popup 收不到版本号:popup-cache 三处清洗函数(cleanTechnologyRecords / mergeDisplayTechnologyRecords / cleanPopupTechnology)都按白名单挑字段,version 一路被剥掉,现已贯穿
  • Server: nginx, IIS/10.0 这种伪造串把 IIS 的 10.0 错挂给 Nginx:attachServerVersion 改成只看 split(',')[0] 首段
  • 版本号比较从字典序改 semver 数字段(extractGlobalVersion 数组排序、merge.ts / popup-cache.ts 合并选具体版本),3.10.0 不再被 3.9.0 反超
  • header 规则的 url 字段被 tech-links.json 同名 key 覆盖:applyHeaderRuleList / applyHeaderValueRuleList / page-detector detectJsonRuleList 现在透传 rule.url 到 tech 对象
  • AWS 规则 __hints 自动算出来全是边缘字段(remapped-x-amzn-requestid 等),命中率高的 cloudfront / x-amz-cf- 等被预筛挡掉:手写 __hints 覆盖

收紧误识别

  • Teleport 不再被 Vue 内置 <Teleport> 组件 SFC chunk 误命中,patterns 改成必须有 goteleport.com / *.teleport.sh / Teleport Cluster / teleport-icon 这类强证据
  • Reka UI 弱信号 chunk 只保留 Reka 独家 hook 命名,剔除 PopperContent- / FocusScope- / RovingFocusGroup- 等跨 Radix 生态的通用 chunk 名
  • React DOM 合并到 React 规则(Web 上 React 必带 React DOM,单列没多余信息)

图标补丁

  • 新增 turbo / amazoncloudfront / alibabacloud / priorityhints 内置 SVG
  • AWS 系列(CloudFront、S3、Bedrock、Amplify、Textract、Rekognition、Global Accelerator)走 BRAND_FIRST_WORD_ALIASES,首词 AWS → Amazon Web Services 统一主 logo
  • Alibaba 系列(Cloud CDN、Cloud OSS、ARMS、Aplus、Alimama、DashScope、SMS、Captcha)同上,首词 Alibaba → Alibaba Cloud
  • 显式 ICON_NAME_ALIASES 补:Hotwire Turbo → Turbo、shadcn-vue → shadcn-ui、Tencent EdgeOne → EdgeOne
  • LINUX DO 登录改名(原 linux.do 登录,小写不出品牌 logo)

StackPrism v1.3.60

12 May 09:47

Choose a tag to compare

新增

  • 77 条海外 OAuth 第三方登录规则:linux.do、Instagram、Reddit、TikTok、Yahoo、Amazon LWA、PayPal、Stripe Connect、Steam、Twitch、Spotify、Salesforce、HubSpot、Atlassian、Notion、Figma、Clerk、WorkOS、Supabase 等海外主流登录,以及亚 / 欧 / 俄 / 法 / 东南亚 / 非 / 北美 / 南美 / 大洋洲的政府国民身份 SSO
  • VS Code for Web 识别(vscode.dev / github.dev / Codespaces),与底层 Monaco Editor 并列出现
  • bundle 扫描提取包体内嵌 OAuth URL:对 SPA 把 OAuth 回调写在 bundle 里的场景(如 linux.do / GitHub / Google 登录在 new-api 这类站),从 JS body 用正则提取 OAuth /authorize 形态的 URL 走第三方登录规则匹配
  • 原始线索面板加下载按钮,空 context 下载完整 raw、选了 source 下载 scoped JSON,文件名带 host / tech / source / 时间戳
  • 补齐 379 条 tech-links 链接(云存储 / OCR / 邮件验证 / IP 地理 / AI API / PDF / Vector DB / Web3 / CMS / Online IDE / 中文支付聚合等)+ build-scripts/check-tech-links.mjs 对账脚本接到 pnpm run check:links

修复

  • 收紧前端框架 / UI / 扩展库 / 构建工具的过宽 keyword:Ionic、Preact、Polymer、Mithril、Svelte 改为资源路径锚定;Knockout、Ext JS、Ractive、CanJS、Rollup、esbuild、Moment、Video.js、daisyUI 同样收紧;daisyUI 只保留独家主题词不再匹配通用 light/dark
  • WP 主题与 Confluence 强制路径锚定:Astra / GeneratePress / OceanWP / Blocksy 要求 /wp-content/themes/<name>/ 资源路径,Confluence 改用 generator meta 与真实 Confluence 路径特征
  • Adobe Analytics 去掉 window.s 误识 global,改成真正独有的 AppMeasurement / s_account
  • 兜底前端库跨类目去重:merge.tssuppressFrontendFallbackDuplicates 扩展到所有类目(避免 filestack 等 SaaS 被兜底重复识别);genericNames 加入 search / sdk / analytics / ms.* / tas-client / ethicalads
  • 动态 feed 检测排除 oembed,不再把 stackblitz / jsbin 的 oembed 端点误识别为 JSON Feed

性能与可靠性

  • per-tab 写锁串行化 detection / dynamic-snapshot / bundle-license / webRequest / message-router 的 read-modify-write 段,修 popup 检测数 7→13→3→7 来回闪烁的回落问题
  • popup-cache.mergePageDetectionRecord:同一 URL 下 page detection 重跑时合并历史检测,不让数量临时回落
  • bundle 扫描 budget 调优(2MB→4MB)+ 3 并发批次 + fetch priority: 'low' + SCAN_DELAY_MS 1400→600ms,配合 content-observer 的 SEND_DELAY、dynamic-snapshot 的 DYNAMIC_SNAPSHOT_PROCESS_DELAY 同步降到 400ms,端到端从页面加载到 popup 完整识别从 ~8s 压到 ~2.4s

StackPrism v1.3.50

12 May 09:47

Choose a tag to compare

新增

  • HTTP/2、HTTP/3 协议识别(先用注入脚本读 nextHopProtocol,后改走 webRequest.statusLine,跨域资源也能拿到准确版本号)
  • 响应头识别 Joomla(x-content-encoded-by / x-powered-cms)与 Varnish(x-varnish:\s*\d,要求 XID 数字格式)
  • 反向代理与代理网关响应头匹配规则
  • 赞助清单 SPONSORS.md + GitHub Sponsors 入口 .github/FUNDING.yml

修复

  • 收紧前端框架 keyword:Ionic、Preact、Polymer、Mithril、Svelte 等从裸单词改为资源路径锚定或 scoped 包路径,避免在 codesandbox / jsbin / replit / vscode.dev 等非命中站点误识别
  • 搜索 worker 兜底:search.<hash>.min.js 等 mkdocs / docusaurus / vitepress 文档站自带文件不再被误识别为「疑似前端库: search」
  • Server / X-Powered-By 字段被反代叠加或伪造时(如 openresty, Microsoft-IIS/10.0),evidence 只显示匹配命中的首段
  • 一批响应头与规则误判修正:CSP / Permissions-Policy / Report-To / NEL 等允许列表头从扫描中剔除、Framework7 去掉裸 f7- 类名、Play Framework 收紧到真特征、Telegram CDN 新增、Telegram / Twitter / X 等域名自指抑制
  • scoped 原始线索面板统一带响应头,spoof 场景排查时方便交叉对照
  • tech-links 去重 41 个重复键

工程

  • 协议名简化为 CC BY-NC-SA 4.0

StackPrism v1.3.40

12 May 04:49

Choose a tag to compare

修复

  • 收紧响应头身份字段识别:CSP / Permissions-Policy / Report-To / NEL 等允许列表性质的响应头从头部 blob 扫描中剔除,避免 CSP 列表里的 googleusercontent.com / cloudflare 等域名被反向推断成站点真的在用对应 CDN。
  • 收紧伪造响应头降级范围:检测到 ≥4 种主体身份字段(server / x-aspnet-* / x-drupal-* / x-powered-cms / x-varnish 等)同时出现,或 server 拼了多个产品时,只对涉及的派生类目降级,不再连带打掉合法识别。
  • 收紧 Plex 与 Powered-by 兜底:Plex 必须命中 plex.tv / /plex/ / plex-media-server 才识别;Nuxt / Next.js / Gatsby / SvelteKit 等 powered-by 兜底归到「前端框架」类目而不是泛 SaaS。
  • 收紧 D3.js 匹配:原 d3(?:\.v\d+)?(?:\.min)?\.js 不带路径锚定,会被 index-3ff0a055461094d3.js 这类带 d3 后缀的内容哈希误命中;改为 (?:^|/)d3... 强制路径开头或路径分隔。
  • 拆分 GitHub 资源识别:原「GitHub Pages」「GitHub Assets」把 github.io / githubusercontent / githubassets 三种完全不同的资源混在一起,导致 github.com/owner/repo 普通仓库页被误标 GitHub Pages。拆成「GitHub Pages」「GitHub Assets」「GitHub Raw Content」三条独立规则。

新增

  • 自指抑制名单:身在 github.com / x.com / npmmirror.com / npm / PyPI / Stack Overflow / Twitter / Facebook / YouTube / Bilibili / 知乎 / 百度 等 50+ 主流站点时,自动不再把同名服务列为「使用的技术」,避免 URL 栏已经显示的内容再次出现在识别结果里。
  • 自指抑制改走数据:按项目「规则即数据」约定,从代码常量挪到 public/rules/self-host-suppress.json 并接入 rules/index.json 统一加载链路。新增条目改 JSON 即可,不用碰代码。
  • 完善 HTTPS / Content Security Policy 在 tech-links.json 中的官网映射,识别结果可点击跳官方文档。

规则补充

  • 弹窗通知、浏览器开发工具相关本地资源匹配规则。
  • 新增规则继续限定明确包目录、专属资源路径与发行文件名,减少页面文本与短词带来的误判。

StackPrism v1.3.30

12 May 01:24

Choose a tag to compare

规则补充

  • 输入组件:文本框、富文本输入、自动完成、文本域等控件的本地资源识别
  • 无障碍组件:可访问性焦点环、键盘陷阱、屏幕阅读器辅助等组件的发行文件名匹配
  • 图标库:主流图标字体、SVG sprite、单文件 SVG 包路径与 scoped 包路径识别
  • 日期组件:日期、时间、日历、区间选择组件的专属资源识别
  • 表格组件:数据表、可编辑表格、虚拟滚动表格的本地资源与包目录识别
  • 交互组件:抽屉、弹层、Tooltip、上下文菜单等通用交互组件
  • 地图组件 / 地图与全景库:Leaflet、Maplibre、Cesium、Pannellum 等地理与全景渲染
  • 轮播组件:Swiper、Splide、Glide 等轮播相关发行文件
  • 接口文档库:Swagger UI、Redoc、Stoplight 等接口文档站匹配

写法约定

  • 新增规则继续限定明确包目录、专属资源路径、scoped 包路径与发行文件名,避免单词、通用 CSS 类名等过宽匹配带来的页面正文误判。

StackPrism v1.3.20

12 May 00:11

Choose a tag to compare

规则补充

  • 前端框架与 UI 框架:补足主流框架的本地资源识别覆盖
  • 数据与状态管理库:Redux、Zustand、Pinia、Jotai、Recoil 等发行文件与 scoped 包识别
  • 框架与组件库:多个组件库的资源与 monorepo 包路径
  • 媒体与表单库:视频、音频、文件上传、表单校验、富文本编辑相关库
  • 交互与动效库 / 交互基础库:动画、滚动、手势、拖拽相关库的本地资源识别
  • 编辑器与国际化库:代码编辑器、富文本编辑器、Markdown 编辑器与 i18n 工具链
  • 文档与编码库:文档生成、PDF / Office 文档处理、文本编码相关库
  • 实时通信库:WebSocket、SSE、WebRTC 客户端的发行文件识别
  • 安全编码库:加密、签名、编码相关 JavaScript 库

写法约定

  • 新增规则优先使用明确包目录、专属发行文件名与作用域包路径,减少短词与页面文本带来的误判风险。

StackPrism v1.3.10

11 May 13:26

Choose a tag to compare

修复

  • 通过 CSS 变量前缀区分 UnoCSS 与 Tailwind CSS:先扫 :root / body 的 --un- 与 --tw- 前缀,再扫同源 stylesheet 的 cssRules 文本兜底,命中 --un- 高置信判 UnoCSS、--tw- 高置信判 Tailwind,都没有再回退到 atomic 类名风格中置信 Tailwind,解决 imba97.com 等 UnoCSS 站点被误报为 Tailwind 的 issue #4

规则

  • 大幅扩充本地前端库资源匹配,覆盖表单、图表、媒体、编辑器、地图、上传、国际化、状态管理、React / Vue 生态、动画、图标、加密与实用工具库。
  • 补充部分监控埋点、前端路由状态、支付程序和资源链接映射。
  • 新增规则继续限定明确包名、目录名、作用域包或专属发行文件,减少短词和泛文件名误判。

其他

  • 新增 sass-embedded 依赖,全部 vue 文件 style 块切到 lang="scss"。
  • Popup / Settings / Help / Select / RippleButton 的样式从平铺 CSS 改写为 SCSS 嵌套形式(父-子用 & 引用、状态变体下嵌、行注释 // 替代 /* */),视觉与行为完全一致。

StackPrism v1.3.0

11 May 10:56

Choose a tag to compare

新增

  • Input / Textarea 组件:hover 框线变 accent,有内容自动显示 X 清除按钮,X mousedown.prevent 触发清空并保持焦点;search input 隐藏浏览器原生 X 改用统一外观。Popup 搜索框 + Settings 全部 input / textarea(4 input + 5 textarea)替换为组件。
  • Checkbox 组件:SVG path 加 stroke-dasharray 24 → 0 的 0.24s cubic-bezier 手绘勾画动画,从左中经过下方拐点画到右上。支持 boolean v-model 与 array v-model + :value 两种模式。Settings 2 处 + Popup 3 处共 5 个原生 checkbox 全部替换。
  • Select 组件加 X 清除按钮:clearable prop 默认 true,与下拉箭头紧贴。
  • 资源 / 响应头面板:popup summary 区域三个数字块改用 RippleButton,资源、响应头可点击展开列表;点击"技术"切回重点视图。buildHeaderRecord 输出 allHeaders(经 sanitize 处理 set-cookie),响应头面板列出完整 KV。

修复

  • popup 分类过滤 X 无反应:categoryFilterValue setter 之前过滤掉空字符串,改成空值回到 FOCUS_CATEGORY。
  • Select 选项后下拉立刻重新打开:sp-fade leave 期间 mouseup 落到下方 trigger 误触发,加 250ms 抑制窗口堵死。
  • Select 清除按钮位置错位:sp-select-value flex 撑满,X 紧贴 chevron 不再被推到中间。
  • Select creatable 模式下点 chevron 被 onClickOutside 误判为外部点击立即关闭,改用整层 selectRef 容器判断。
  • 刷新后 loading 图标永久存在:scheduleCachedResultRefresh 的 setTimeout 回调入口立即把 cacheRefreshTimer 清零,attempt 用完不再 schedule 时 spinner 真正消失。
  • 识别纠正按钮:跳转 GitHub issue 前把完整原始线索复制到剪贴板,issue body 引导用户 Ctrl+V 粘贴。
  • 无 URL 的技术不再显示成可点击链接样式:buildPopupResult 改 async 通过 attachTechnologyLinks 给每个 tech 预填 URL,空 URL 显示纯文本。
  • CDN 规则:server: TencentEdgeOne 不再被 Tencent Cloud CDN 裸 tencent 模式误命中;UCloud CDN 加 hostname 边界;已识别具体 CDN 时 popup display 抑制"自定义 / 未知 CDN"低置信兜底。

UX

  • 弹窗 status 改为与 settings 一致的悬浮 msg 浮动卡片,3 秒自动消失;复制 / 刷新 / 加载完成给 ok 提示,失败给 error 提示。
  • 顶部"响应头"指标后跟随转圈 Loader2 图标表示后台检测进行中。
  • 源代码搜索 / 原始线索展开时加遮罩动画,点击遮罩关闭面板。

StackPrism v1.2.90

11 May 10:55

Choose a tag to compare

修复

  • 切断"动态快照 → 全量识别 → content-observer 重启 → 新动态快照"自反馈死循环,每次循环让主线程被同步阻塞 1.5-2 秒、page-detector 被反复注入造成持续卡顿。
  • 全量识别入口加 30 秒节流,SPA 反复 fire loading/complete 序列时只跑一次。
  • 借助 webNavigation.onCommitted 区分真 navigation 与 SPA 假切换:F5 刷新、点击链接、地址栏输入清节流立即重检;SPA 内部 history.pushState/replaceState 保留节流不重跑。
  • detectPageTechnologies 改 async 分片,5 个检测块之间 await setTimeout(0) 让出主线程,避免单次 1.5+ 秒同步阻塞导致刷新后滚动条卡死、内容掉帧。
  • 修复 page-detector 因 PHP 运行时派生 const 位于函数 return 之后触发 TDZ、导致页面识别只剩响应头一条命中的回归。
  • 修复跨站点切换残留旧域名动态快照污染新页面结果。
  • 修复响应头回退合并、兜底识别去重、前端库别名归并多处逻辑漏洞。

性能

  • 动态监控热路径:跳过容器匹配合并为单条正则;移除批处理队列 O(N²) 祖先检查;待处理节点超 200 立即进入冷却;burst 阈值 300→150;弃用 requestIdleCallback(高负载页拖到 1 秒 timeout 反而造更大长任务)改回 200ms setTimeout。
  • MutationObserver 冷却时真正 disconnect、启动 30 秒后强制 disconnect 不再重连,浏览器底层停止跨 isolated world 派发 mutation records。
  • 监听目标缩到 body 去掉 head 子树噪音,SPA 路由切换补一次 body 扫描保留 markers 识别能力。
  • 弹窗首屏渲染:预计算缓存结果、拆分轻量缓存。

新增

  • 动态监控可选性能埋点:localStorage 开启 sp_observer_debug 后每 3 秒在页面 console 输出 mutation-callback / flush / perf-observer / send-snapshot 的 count/avg/max,page-detector 注入耗时与命中数同时输出,便于线上诊断。
  • 新增 webNavigation 权限,只用于监听 main frame 真 navigation,不读取历史、不监听子 frame。

规则

  • 收紧规则匹配条件并补充识别兜底,新增后端框架与前端库识别。
  • 扩展 PHP 运行时派生:检测到 ThinkPHP、Discuz!、Laravel、Symfony 等三十余个 PHP 系网站程序或后端框架时自动推断 PHP 后端运行时。

其他

  • 简化插件展示名称。

StackPrism v1.2.80

11 May 10:55

Choose a tag to compare

修复

  • 修复 page-detector 注入脚本因 PHP 运行时派生规则的 const 声明位于函数 return 之后触发 TDZ 报错,导致页面识别只剩响应头一条命中的回归。
  • 修复跨站点切换时残留的旧域名动态快照污染新页面识别结果。
  • 修正响应头回退合并、兜底识别去重、前端库别名归并的多处逻辑漏洞。

性能

  • 削减 content-observer 动态监控热路径:合并跳过容器匹配为单条正则;移除批处理队列的 O(N²) 祖先检查;待处理节点超 200 立即进入冷却;burst 阈值 300→150;放弃 requestIdleCallback(高负载页拖到 1 秒 timeout 反而造成更大长任务),改回 200ms setTimeout 小步快跑。
  • 缩减 SUBTREE_SELECTOR 命中面,去掉过宽的 [id], [class] 选择器。
  • 弹窗首屏渲染:预计算缓存结果、拆分轻量缓存。
  • 动态监控后台处理改批量化,减少向 service worker 的频繁通信。

新增

  • 动态监控加入可选性能埋点:在控制台 localStorage.setItem('__sp_observer_debug__','1') 后刷新页面即可启用,通过 performance.getEntriesByName('sp:mutation-flush') / sp:mutation-callback / sp:perf-observer / sp:send-snapshot 可量化各热点耗时,默认关闭无运行成本。

规则

  • 收紧规则匹配条件并补充识别兜底,新增后端框架与前端库识别。
  • 扩展 PHP 运行时派生:当检测到 ThinkPHP、Discuz!、Laravel、Symfony 等三十余个 PHP 系网站程序或后端框架时,自动推断 PHP 后端运行时。

其他

  • 简化插件展示名称。