setube/stackprism has 1,240 GitHub stars and 96 forks. GitHot measured +1 stars in 24 hours and +2 in 7 days. Last checked 2026-11-09 13:39 UTC. Last push 2026-10-29.
StackPrism is a browser extension for detecting website technology stacks.
できること
- MV3 service worker architecture — no persistent background process; event-driven, low memory footprint
- Rules as data — 50+ JSON rule files (public/rules/) maintained centrally; at build time a precompiler injects __hints (top-3 longest literal segments) and __keywordCombined (merged regex) into each leaf rule, so the runtime only evaluates candidate matches
計測したスター増加
- 24時間
- +1
- 7日間
- +2
- 15日間
- 更新が遅れています
- 1か月
- 更新が遅れています
期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。
i18n/README.ja.md
オリジナル
StackPrism — Web テックスタック検出ツール
Chrome、Edge、Firefox 対応の Manifest V3 拡張機能で、ウェブページの技術スタックを識別します。
English · 简体中文 · 繁體中文 · 日本語 · Français · Deutsch · Português · Italiano · Čeština · Polski
はじめに • 機能 • ルールシステム • 注意事項 • コントリビュート • スポンサー • スター履歴 • ライセンス
はじめに
StackPrism は Chrome、Edge、Firefox 向けの Manifest V3 ブラウザ拡張機能で、任意のウェブページで使用されている技術スタックを識別します。
HTMLリソースURLのスキャンのみを行う同種のツールとは異なり、StackPrism は4つの独立した検出チャネルを並行して実行します。
- 静的スキャン — ページ読み込み時に、注入されたスクリプトがDOM、グローバル変数、CSSクラス名、CSS変数、
<meta>タグをスキャンします - レスポンスヘッダー監視 — Service Workerが
webRequest.onHeadersReceivedを購読し、メインドキュメント、XHRリクエスト、iframeのレスポンスヘッダーとHTTPバージョンをキャプチャします - 動的リソース監視 — コンテンツスクリプトが
PerformanceObserver+MutationObserverを使用して、ユーザー操作後に読み込まれたスクリプト、スタイル、iframe、フィードを蓄積します - JSコピーライトコメントスキャン — バックグラウンドがメインバンドルの先頭数百バイトを非同期でフェッチし、コピーライトヘッダーを通じて
index/main/vendorチャンクに含まれているサードパーティの依存関係を識別します
4つのチャネルの結果を統合・重複排除し、50以上のカテゴリにグループ化するとともに、なりすましヘッダー、自己参照型検出、ファジーな誤検知を積極的に抑制します。
技術的なハイライト
- MV3 サービスワーカーアーキテクチャ — 永続的なバックグラウンドプロセスなし。イベント駆動型で、メモリフットプリントが小さい
- データとしてのルール — 50以上のJSONルールファイル(
public/rules/)を一元管理。ビルド時にプリコンパイラが各リーフルールに__hints(上位3つの最長リテラルセグメント)と__keywordCombined(マージされた正規表現)を注入するため、ランタイムは候補マッチのみを評価します
検出カバレッジ
| 次元 | カテゴリの例 |
|---|---|
| フロントエンド | フロントエンドフレームワーク / UIフレームワーク / フロントエンドライブラリ / ビルド&ランタイム |
| バックエンド | Webサーバー / バックエンドフレームワーク / CDN&ホスティング / 言語 |
| コンテンツ | CMS / テーマ&テンプレート / Eコマース / RSS |
| サードパーティ | SaaS / APM / AIモデル / ソーシャルログイン / 決済 |
| マーケティング | 広告 / マーケティング / アナリティクス / タグマネージャー |
| セキュリティ | WAF / HTTPS / HTTP/2 / HTTP/3 / CSP / Cookieコンセント |
UI言語
ポップアップと設定ページは9言語に対応しており、ブラウザのロケールから自動検出されます。
🇨🇳 简体中文 · 🇹🇼 繁體中文 · 🇯🇵 日本語 · 🇫🇷 Français · 🇩🇪 Deutsch · 🇧🇷 Português · 🇮🇹 Italiano · 🇨🇿 Čeština · 🇵🇱 Polski
ポップアップヘッダーの 🌐 ボタンで手動で言語を切り替えることもできます。
インストール
ソースからロード(デベロッパーモード):
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 ドキュメントプレビュー
ルールシステム
StackPrism の検出はデータ駆動型です — ほぼすべての変更はコードに触れることなく、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にマッピングし、結果をクリック可能にします
- ビルド時プリフィルター — vite.config.ts の
precompileRulesPluginがビルド時に各リーフルールに__hintsと__keywordCombinedを注入。ランタイムのrule-matcher.tsがこれを候補フィルターとして使用します
ルールスキーマ:
{
"name": "My Technology",
"category": "Frontend Framework", // 50以上のカテゴリのいずれか
"patterns": ["regex-or-keyword"],
"matchType": "regex", // または "keyword"
"matchIn": ["html", "resources", "url", "headers", "dynamic"],
"confidence": "高", // 高 / 中 / 低
"kind": "description",
"selectors": ["CSS セレクター"],
"globals": ["window グローバル名"],
"classPrefixes": ["class-prefix"]
}
ルール品質ガイドライン
- シグナルの高い証拠を優先: レスポンスヘッダー、一意のリソースURL、
<meta name="generator">、window.<global>、一意のCSSセレクター、コピーライトコメント、公式SDKパッケージ名 - 短い・広範なキーワード(
spring、phoenix、column、container— これらは競合他社への言及、Bootstrap/Tailwindのユーティリティクラス、一般的な文章にマッチします)は避けてください - より狭い
matchInスコープを優先 — 誤検知を減らすために、barehtmlではなくresources/url/headersを使用してください
注意事項
- バックエンド検出は網羅的ではありません — 多くのサイトが
Server/X-Powered-Byヘッダーを隠しています。バックエンドの結果は「手がかり+信頼度」として表示されます - なりすましヘッダー — 拡張機能は4つ以上の異なるIDヘッダーが共存するシーン(ハニーポットやなりすましレスポンスを示唆)を積極的に検出し、それらのカテゴリを警告付きで低信頼度にダウングレードします。単一のなりすましヘッダーは検出できないため、他のシグナルと合わせてご活用ください
- 初回インストール後のリロードが必要 — サービスワーカーがメインドキュメントのレスポンスヘッダーを監視する必要があり、新鮮なページ読み込みでのみ機能します
- ソース検索はDOMスナップショット — 元のサーバーが返したHTMLではなく、現在のページの
outerHTMLに基づいています - Chromeシステムページ / ストアページ / 内部ページは一般的にコンテンツスクリプトの注入をブロックします
- 動的監視は非同期に蓄積 — コンテンツスクリプトはユーザー操作後に読み込まれたリソースを蓄積します。ポップアップを再度開くとマージされた結果が表示されます
コントリビュート
StackPrism は50以上のカテゴリにわたる2000以上の検出ルールを搭載していますが、フロントエンドのエコシステムは速く動いています。新しいフレームワーク、新しいSaaSツール、誤検知、未検出はすべて歓迎します。
- バグ / 誤検知 / 未検出 — Issues — ポップアップの「不正確な検出を報告」ボタンでイシューテンプレートが自動入力されます
- ルールのコントリビュート — 設定の「ルールコントリビュートを送信」をクリックするか、
public/rules/に直接PRを送ってください - ディスカッションと提案 — Discussions
コードを提出する前に bun run typecheck && bun run lint && bun run build を実行し、すべて通過することを確認してください。
スター履歴
役に立つと思ったら、⭐ を押すと他の人がプロジェクトを見つけやすくなります。
ライセンス
MIT の下で公開されています。