Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ubercookie — ブラウザストレージとHTTPキャッシュ技術が、訪問者を永続的に再識別できる仕組みを示す教育用 evercookie デモ。 | Kitploit
ツール/GitHubGitHub/elpy1/ubercookie
OSINT (オープンソースインテリジェンス)IDS/IPS回避ウェブセキュリティプライバシー学習と教育フィンガープリントスプーフィング
GitHubelpy1/ubercookie

ubercookie

ブラウザストレージとHTTPキャッシュ技術が、訪問者を永続的に再識別できる仕組みを示す教育用 evercookie デモ。

リポジトリを見る
112ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

🍪 ubercookie

ウェブサイトがどのようにしてあなたを永続的に識別するのか——そして「Cookieを消せばいい」がもはや通用しない理由を示す、教育用デモです。

ubercookie は、単一のランダムIDを12種類のブラウザストレージベクターに同時に埋め込みます。訪問のたびにすべてを読み取り、合意を取って、IDをすべての場所に書き戻します。どこか1つのストアを消しても——あるいはCookieを全部消しても——生き残ったストアが静かに 復活 させます。このサイトは、あなたのIDがどこに隠れているのか、どのくらい頻繁にブラウザを認識したのかを、平易な言葉で正確に表示します。

これは Samy Kamkar の古典的な evercookie と同じ発想を、ストレージの復活とスーパークッキーの永続性に焦点を当てた、オープンで透明な教材として構築したものです。

[!IMPORTANT] このプロジェクトは、啓発のために意図的に訪問者を追跡します。ファーストパーティのみを使用し、ランダムなID・訪問回数・初回/最終アクセス時刻・復元元ラベルだけを保存し、第三者とは一切共有しません。また、実際に動作する 「Forget me」 ボタンが付属しています。人の同意なしに追跡する目的に流用しないでください——それは本プロジェクトの趣旨に反します。倫理を参照してください。


デモの内容

ベクター種類JS必要?JSから消去可能?学べること
document.cookieクライアントはいはい基本のトラッカー
localStorageクライアントはいはいCookie消去後も生存する
sessionStorageクライアントはいはいタブごとの冗長性
IndexedDBクライアントはいはい消し忘れがちなDB全体
Cache API (caches)クライアントはいはい上記とは別のプログラム可能なストア
window.nameクライアントはいはいナビゲーションをまたいで持続する
OPFS (Origin Private File System)クライアントはいはい手動クリーンアップでは消せないサンドボックス化ファイルシステム
Service Worker + CacheクライアントはいはいバックグラウンドスクリプトがIDを再提供、オフラインでも
サーバーCookie (HttpOnly)サーバーいいえサーバー経由JSからは不可視、すべてのリクエストで送信される
ETagスーパークッキーサーバーいいえキャッシュ削除のみIf-None-Match でIDがエコーバックされる
Last-Modifiedスーパークッキーサーバーいいえキャッシュ削除のみキャッシュ済みリソースの日時にIDが埋め込まれる
HTTPキャッシュ (ID埋め込みスクリプト)サーバーいいえキャッシュ削除のみimmutable なキャッシュファイルにIDが焼き込まれる

これらに加えて、ページはブラウザに永続ストレージ(navigator.storage.persist())を要求します。これにより、IndexedDB / Cache / Service Worker / OPFS のコピーが自動削除の対象から除外され、さらに剥がしにくくなります。

キャッシュベースの3つのベクターが永続性の核心です。これらはブラウザのHTTPキャッシュ内に存在するため、JavaScript(私たち自身の「Forget me」を含む)では削除 できません——ブラウザのキャッシュを消すだけです。それがIDが死からよみがえる仕組みです。

実装済みストレージベクターの完全な解説と、このプロジェクトに当てはまるHSTSスーパークッキーのアイデアは、docs/techniques.md にあります。


アーキテクチャ

root@kitploit:~
ubercookie/
├── backend/            FastAPI — server-side vectors + the observation log (SQLite)
│   └── app/
│       ├── main.py     endpoints: /api/visit, /api/whoami, /api/etag-id,
│       │               /api/lastmod-id, /api/cache-id.js, /api/clear-cookie,
│       │               /api/forget
│       ├── store.py    "we've seen this browser N times" memory
│       └── ids.py      mint/validate the 32-hex tracking id
└── frontend/           Vanilla JS + Vite — the dashboard and the client vectors
    └── src/ubercookie/
        ├── index.js    orchestrator: read-all → consensus → respawn → report
        └── vectors/    one self-contained module per storage vector

訪問の仕組み(frontend/src/ubercookie/index.js):

  1. 読取り — すべてのベクターを並列に読み取ります。
  2. 合意 — 最も多くのベクターが一致したIDを選びます(新規なら「なし」)。
  3. 報告 — サーバーに報告します。サーバーはIDを持っていなければ新規発行し、訪問を記録して HttpOnly Cookieを設定します。
  4. 復活 — その1つのIDを、それを欠いていたすべてのベクターに書き戻します。

クイックスタート

Python ≥ 3.11(uv 付き)と Node ≥ 18 が必要です。

root@kitploit:~
make install        # backend deps (uv) + frontend deps (npm)

# then, in two terminals:
make backend        # FastAPI on http://localhost:8000
make frontend       # Vite on  http://localhost:5173  (proxies /api → :8000)

http://localhost:5173 を開いて、自分が追跡されるのを確認してください。DevToolsを開き、いくつかのストアを削除して Re-scan を押すと、復活する様子がわかります。

両サーバーを一度に起動するワンライナー: ./scripts/dev.sh

本番スタイル(FastAPIがビルド済みフロントエンドを配信、シングルオリジン)

root@kitploit:~
make build                                   # → frontend/dist
cd backend && uv run uvicorn app.main:app --port 8000
# open http://localhost:8000

両方を1つのオリジンから配信するのが最も忠実な構成です。cache/ETagベクターは、実際の同一オリジンHTTPキャッシュに依存するためです。


テスト

root@kitploit:~
make test           # backend pytest (server-side vector logic + observation log)
make build          # frontend production build

バックエンドのテストは、サーバーサイドのベクターと観察ログを検証します。ブラウザの挙動は、複数のベクターがオリジンストレージ・Service Worker・HTTPキャッシュに依存するため、実際のブラウザでの確認が依然として必要です。


倫理

これは防御 / 啓発のためのツールです。設計に組み込まれたガイドライン:

  • 透明性 — 保存されたすべての値はページ上でユーザーに表示されます。
  • ファーストパーティのみ — 第三者へのリクエストはなく、クロスサイト追跡もしません。
  • 最小限のデータ — ランダムなID、初回/最終アクセス時刻、訪問カウンター、IDを復元したベクターのラベルだけです。個人情報は含まれず、サーバーの外に出るものもありません。
  • 本当のオプトアウト — Forget me ボタンは到達可能なすべてを消去し、サーバー上の記録も削除します。キャッシュ削除でしか消せないものについても、このページは正直に説明しています。

フォークする場合も同じ精神を守ってください: 人々が自分を守れるよう追跡の仕組みを教えるために使い、秘かに追跡するために使わないでください。

ライセンス

MIT — LICENSE を参照してください。

ツールをダウンロード