マーケティングの言葉を信じるな。自分で確かめろ。
「データはサーバーに送信されません」「プライバシーを守ります」「ローカル処理で安全です」。
オンラインツールの多くが、こうした文言をWebサイトに掲げている。しかし、その主張を検証する手段を提供しているツールはどれだけあるだろうか。
本記事では、ブラウザの標準機能だけを使い、オンラインツールが本当にデータを外部に送信していないかどうかを、あなた自身の目で確認する方法を解説する。特別なソフトウェアは不要だ。必要なのは、ブラウザとキーボードのF12キーだけである。
「信頼せよ、ただし検証せよ(Trust, but verify)」。この原則に従い、事実を確認しよう。
ステップ1: 開発者ツール(DevTools)のNetworkタブを開く
ブラウザには「開発者ツール」と呼ばれる機能が標準搭載されている。これはWebページの通信やパフォーマンスを分析するためのツールであり、特別なインストールは一切不要だ。
起動方法
| ブラウザ | ショートカットキー | メニューからの操作 |
|---|---|---|
| Chrome | F12 または Ctrl+Shift+I |
メニュー → その他のツール → デベロッパーツール |
| Firefox | F12 または Ctrl+Shift+I |
メニュー → ウェブ開発ツール |
| Edge | F12 または Ctrl+Shift+I |
メニュー → その他のツール → 開発者ツール |
| Safari | Cmd+Option+I |
開発メニュー → Webインスペクタを表示 |
起動後、上部のタブから**「Network」**を選択する。これが通信を監視する画面だ。
準備
- Networkタブを開いた状態にする
- 左上の赤い丸ボタン(記録ボタン)が赤く点灯していることを確認する
- 「Clear」ボタン(禁止マークのアイコン)を押して、ログをクリアする
- 「Preserve log」にチェックを入れると、ページ遷移してもログが保持される
この状態でWebページを操作すれば、ブラウザが送受信するすべての通信が一覧に記録される。
ステップ2: クラウド型ツールの通信を観察する
まず、一般的なクラウド型オンラインツールの挙動を確認しよう。PDFの圧縮やファイル変換を提供するツールであれば、どれでも構わない。
操作手順
- DevToolsのNetworkタブを開いた状態で、クラウド型ツールにアクセスする
- ログをクリアする
- ファイルを選択して処理を開始する
- Networkタブに表示されるリクエストを観察する
観察されるリクエスト例
Name Method Status Type Size
───────────────────────────────────────────────────────────────
upload POST 200 xhr 4.2 MB
upload POST 200 fetch 4.2 MB
process?id=abc123 GET 200 xhr 128 B
status?id=abc123 GET 200 xhr 64 B
status?id=abc123 GET 200 xhr 64 B
download/abc123.pdf GET 200 document 1.8 MB
注目すべきはPOSTリクエストだ。Method列にPOSTと表示され、Size列にファイルサイズに近い値が表示されている。これは、あなたのファイルがサーバーに送信されたことを意味する。
送信データの詳細を確認する
POSTリクエストをクリックし、「Payload」タブまたは**「Request」タブ**を開くと、送信されたデータの詳細を確認できる。multipart/form-dataとしてファイルのバイナリデータが含まれていれば、ファイルそのものがサーバーに転送されたことの決定的な証拠だ。
Request Headers:
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary...
Content-Length: 4398126
Request Payload:
------WebKitFormBoundary...
Content-Disposition: form-data; name="file"; filename="document.pdf"
Content-Type: application/pdf
(binary data)
ファイル名、ファイルタイプ、そしてバイナリデータが外部サーバーに送られていることがはっきりと分かる。
ステップ3: JobDoneBotの通信を観察する
次に、同じ手順でJobDoneBotの挙動を確認する。
操作手順
- DevToolsのNetworkタブを開いた状態で、JobDoneBotのツール(例: PDF圧縮)にアクセスする
- ログをクリアする
- ファイルを選択して処理を開始する
- Networkタブに表示されるリクエストを観察する
観察されるリクエスト例
Name Method Status Type Size
───────────────────────────────────────────────────────────────
(リクエストなし — ファイル処理中に新規通信は発生しない)
Networkタブにリクエストが追加されない。 ファイルを選択し、処理が完了し、結果をダウンロードするまでの全過程で、ファイルデータに関する通信はゼロだ。
初回アクセス時に表示される通信
初回アクセス時にはページの表示に必要なリソースが読み込まれる。
Name Method Status Type Size
───────────────────────────────────────────────────────────────
page.js GET 200 script 45 KB
layout.css GET 200 stylesheet 12 KB
engine.wasm GET 200 wasm 890 KB
worker.js GET 200 script 8 KB
これらはWebページとしての基本リソース(HTML、CSS、JavaScript)およびWebAssemblyエンジンの読み込みであり、あなたのファイルデータは一切含まれていない。Type列にwasmと表示されているのが、ブラウザ内で処理を実行するためのWebAssemblyモジュールだ。
重要なのは、ファイルを選択した後に新たなPOSTリクエストが発生しないこと。 これが「データが送信されていない」ことの技術的な証拠である。
なぜ通信が発生しないのか ― WebAssemblyとWeb Workers
WebAssemblyによるブラウザ内処理
JobDoneBotは、ファイル処理のコアエンジンを**WebAssembly(Wasm)**として実装している。WebAssemblyはW3Cが策定した標準仕様で、ブラウザ内でネイティブに近い速度でバイナリコードを実行する技術だ。
処理の流れは以下のとおりだ。
ファイルを選択
↓ ブラウザのメモリ(RAM)に読み込み
↓ JavaScriptからWasmエンジンにデータを渡す
↓ Wasmエンジンがメモリ上で処理を実行
↓ 処理結果をJavaScriptに返す
↓ Blob URLを生成してダウンロード
すべてのステップがブラウザのメモリ内で完結する。ネットワークスタックを経由するステップが存在しないため、DevToolsのNetworkタブにリクエストが記録されることは物理的にあり得ない。
Web Workersによる並列処理
JobDoneBotはWeb Workersを使い、Wasm処理をメインスレッドとは別のバックグラウンドスレッドで実行している。これにより、処理中もUIがフリーズしない。
Web Workersの通信はpostMessage APIで行われ、ブラウザ内部のメモリ転送であるため、ネットワーク通信には該当しない。DevToolsのNetworkタブには一切記録されない。
ステップ4: Service WorkerとCache Storageを確認する
Service Workerの確認
DevToolsの**「Application」タブを開き、左側メニューから「Service Workers」**を選択する。JobDoneBotではService Workerが登録されていることが確認できる。
Service Workerは以下の役割を果たしている。
- リソースのキャッシュ: Wasmモジュールや静的ファイルをブラウザに保存
- オフライン対応: キャッシュ済みリソースを使い、ネットワークなしで動作
- 高速化: 2回目以降のアクセスでネットワーク通信を最小化
Cache Storageの確認
同じ「Application」タブの左側メニューから**「Cache Storage」**を展開すると、キャッシュされたリソースの一覧が表示される。
Cache Storage
└── jobdonebot-v1
├── /tools/pdf-compress (HTML)
├── /static/engine.wasm (Wasm module)
├── /static/worker.js (Web Worker)
└── /static/styles.css (CSS)
ここにキャッシュされているのは、ツールの動作に必要なプログラムとスタイルシートだけだ。あなたが処理したファイルのデータは一切キャッシュに含まれない。 処理が完了すれば、メモリから解放される。
ステップ5: 完全オフラインで使ってみる
最も決定的な検証方法は、インターネット接続を完全に切断した状態でツールを使用することだ。
手順
- まず、インターネットに接続した状態でJobDoneBotのツールページにアクセスする(Service Workerとキャッシュが有効化される)
- Wi-Fiを切断する、またはLANケーブルを抜く
- DevToolsのNetworkタブを開く
- ファイルを選択して処理を実行する
結果
処理は正常に完了する。
インターネットに接続されていないため、外部サーバーとの通信は物理的に不可能だ。それでもファイル処理が正常に完了するという事実は、すべての処理がブラウザ内で完結していることの最終的な証明になる。
DevToolsのNetworkタブには(failed)のリクエストすら表示されない。そもそもネットワークリクエストを発行していないからだ。
オフライン検証の表
| 検証項目 | クラウド型ツール | JobDoneBot |
|---|---|---|
| オフラインでのファイル処理 | 不可能(エラー表示) | 正常に完了 |
| オフラインでの結果ダウンロード | 不可能 | 正常に完了 |
| オフライン時のNetworkタブ | (failed) リクエストが記録される |
リクエスト自体が存在しない |
| オフライン後の再接続で送信 | ― | 送信するデータが存在しないため通信なし |
最後の項目が重要だ。「オフライン中に溜めておいて、再接続時にこっそり送信するのでは?」という疑念にも、DevToolsで回答できる。再接続後もファイルデータの送信リクエストは発生しない。
高度な検証: リクエストのフィルタリング
Networkタブには大量のリクエストが表示されることがある。効率的にファイル送信を確認するためのフィルタリング手法を紹介する。
メソッドでフィルタリング
ファイルのアップロードには通常POSTまたはPUTメソッドが使われる。Networkタブのフィルタ欄に以下を入力する。
method:POST
クラウド型ツールではファイル送信のPOSTリクエストが表示される。JobDoneBotではファイル処理に関連するPOSTリクエストは表示されない。
サイズでソート
Size列のヘッダーをクリックして降順ソートすると、大きなデータ転送が上位に表示される。ファイルをアップロードしている場合、元ファイルに近いサイズのリクエストが見つかるはずだ。
タイプでフィルタリング
Networkタブ上部のフィルタボタンから「XHR」や「Fetch」を選択すると、APIリクエストのみに絞り込める。ファイル送信はこのカテゴリに含まれることが多い。
「信頼せよ、ただし検証せよ」
セキュリティの世界には「Trust, but verify(信頼せよ、ただし検証せよ)」という原則がある。ゼロトラストの考え方をさらに進め、「Verify, then trust(検証してから、信頼せよ)」に置き換えてもよい。
本記事で紹介した手順は、5分もあれば完了する。
- F12キーを押してDevToolsを開く
- Networkタブを選択する
- ファイルを処理する
- POSTリクエストの有無を確認する
- 疑わしければオフラインで試す
この5つのステップで、あらゆるオンラインツールの通信挙動を検証できる。マーケティングの文言に頼る必要はない。技術的な事実を、自分の目で確認できる。
Local-Firstの透明性とは、「信じてください」と言うことではない。**「自分で確かめてください。その手段を提供します」**と言うことだ。
自分の目で確かめて、安心して使う
JobDoneBotは、すべての処理をブラウザ内で完結させるLocal-First設計のツールです。この記事で解説したとおり、ファイルデータがサーバーに送信されないことは、あなた自身のDevToolsで検証できます。
個人・チームで今すぐ使う:
- PDF圧縮 ― Networkタブを開きながら試してみてください。通信ゼロで圧縮が完了します
- 背景削除 ― 写真データを外部に送らず、ブラウザ内で即座に処理
- 画像高画質化 ― AI超解像もローカル完結。オフラインでも動作します
すべて無料・登録不要・回数制限なし。全ツール一覧はこちら →
企業・組織で導入を検討する:
社内ネットワーク完結型のオンプレミスアプライアンスも提供しています。インターネット接続を完全に遮断した環境で、全ツール + AIアシスタントが利用可能。情報システム部門のセキュリティ監査にも対応する、データが組織外に一切出ない処理環境です。
エンタープライズ版の詳細 →