·4分で読めます

MacでChromeのCookie(SQLite)を閲覧する方法

ChromeはMac上のSQLiteデータベースにCookieを保存しています。DevToolsを通じた閲覧は一度に1つのサイト分にしか対応できません。Cookieデータベース全体を調べるには別のアプローチが必要です。

Chromeは、すべてのCookieを~/Library/Application Support/Google/Chrome/Default/CookiesにあるCookies(拡張子なし)というSQLiteデータベースファイルに保存しています。Chrome DevToolsを使えば1つのサイトのCookieを閲覧できますが、すべてのCookieを横断的に検索したり、トラッキングのパターンを分析したり、サイトがどんなデータを保存しているかを監査したりしたい場合は、実際のデータベースファイルを開く必要があります。ChromeにはCookieストア全体をビジュアルに閲覧する方法は用意されていません。

DevToolsの限界

ChromeのDevToolsにある「アプリケーション」タブは、現在読み込まれているページのドメインごとのCookieを表示します。これは特定のサイトのCookieをデバッグするには有効ですが、すべてのサイトにまたがるすべてのCookieを見たい、複数のドメインで使われている特定のCookie名を検索したい、あるいはトラッキング用のCookieがいくつ存在するかを数えたいといった場合には力不足です。すべてのサイトを個別に訪れて一つずつ調べる必要があり、現実的ではありません。

データベースによるアプローチなら全体像を把握できます。しかしターミナルでsqlite3を使ってChromeのCookiesファイルを開くと、ホストキー、Cookie名、値、有効期限のタイムスタンプ(Chromeのエポック形式——1601年1月1日からのマイクロ秒)、そして暗号化された値の行を生のテキストとして読むことになります。ChromeはmacOS上でCookieの値を暗号化するため、encrypted_value列には直接読み取れないバイナリのブロブが含まれています。ホスト、名前、パス、有効期限、フラグといったメタデータの列は読み取り可能であり、それこそが実際に必要なものであることが多いでしょう。

TomeでChromeのCookieを閲覧

Tomeは、ChromeのCookiesデータベースファイルを開き、cookiesテーブルをスクロール・並べ替え可能なグリッドに表示します。まずChromeを終了させ(ファイルをロックしているため)、その後Tomeで~/Library/Application Support/Google/Chrome/Default/Cookiesを開いてください。

Tome viewing Chrome cookies SQLite database on Mac

すべてのドメインを横断して検索

TomeのSQLエディタを使って、名前、ホスト、パターンでCookieを検索しましょう。SELECT host_key, name, path FROM cookies WHERE name LIKE '%_ga%';のようなクエリを使えば、訪れたすべてのサイトにまたがるGoogle AnalyticsのCookieを一度に洗い出せます——これはDevToolsでは1つの画面で見ることができないものです。

Cookieのメタデータを監査

cookiesテーブルを閲覧すれば、どのドメインが永続的なCookieを設定しているか、どれがセキュアフラグを使っているか、どれがSameSite属性を持っているかが分かります。有効期限で並べ替えれば、何年も残り続けるCookieを見つけられます。値が暗号化されていても、この情報はすべて平文で確認できます。

その他のChromeデータベースを調べる

Chromeのプロファイルディレクトリには、HistoryLogin DataWeb DataFaviconsといった他のSQLiteデータベースも含まれています。それぞれをTomeで開いてビジュアルに調べることができます——Chromeがローカルにどんなデータを保存しているかを理解するのに役立ちます。

Mac App StoreでTomeを入手する

次の記事

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store