使い方
15分で読める

「本当にデータを送信していない」を自分の目で確認する方法

ブラウザの開発者ツール(DevTools)を使い、オンラインツールがファイルデータを外部に送信しているかどうかを自分で検証する手順を解説。Local-First処理の透明性を、技術的な証拠とともに確認できます。

本当にデータを送信していないを自分の目で確認する方法 - JobDoneBot

マーケティングの言葉を信じるな。自分で確かめろ。

「データはサーバーに送信されません」「プライバシーを守ります」「ローカル処理で安全です」。

オンラインツールの多くが、こうした文言を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」**を選択する。これが通信を監視する画面だ。

準備

  1. Networkタブを開いた状態にする
  2. 左上の赤い丸ボタン(記録ボタン)が赤く点灯していることを確認する
  3. 「Clear」ボタン(禁止マークのアイコン)を押して、ログをクリアする
  4. 「Preserve log」にチェックを入れると、ページ遷移してもログが保持される

この状態でWebページを操作すれば、ブラウザが送受信するすべての通信が一覧に記録される。


ステップ2: クラウド型ツールの通信を観察する

まず、一般的なクラウド型オンラインツールの挙動を確認しよう。PDFの圧縮やファイル変換を提供するツールであれば、どれでも構わない。

操作手順

  1. DevToolsのNetworkタブを開いた状態で、クラウド型ツールにアクセスする
  2. ログをクリアする
  3. ファイルを選択して処理を開始する
  4. 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の挙動を確認する。

操作手順

  1. DevToolsのNetworkタブを開いた状態で、JobDoneBotのツール(例: PDF圧縮)にアクセスする
  2. ログをクリアする
  3. ファイルを選択して処理を開始する
  4. 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: 完全オフラインで使ってみる

最も決定的な検証方法は、インターネット接続を完全に切断した状態でツールを使用することだ。

手順

  1. まず、インターネットに接続した状態でJobDoneBotのツールページにアクセスする(Service Workerとキャッシュが有効化される)
  2. Wi-Fiを切断する、またはLANケーブルを抜く
  3. DevToolsのNetworkタブを開く
  4. ファイルを選択して処理を実行する

結果

処理は正常に完了する。

インターネットに接続されていないため、外部サーバーとの通信は物理的に不可能だ。それでもファイル処理が正常に完了するという事実は、すべての処理がブラウザ内で完結していることの最終的な証明になる。

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分もあれば完了する。

  1. F12キーを押してDevToolsを開く
  2. Networkタブを選択する
  3. ファイルを処理する
  4. POSTリクエストの有無を確認する
  5. 疑わしければオフラインで試す

この5つのステップで、あらゆるオンラインツールの通信挙動を検証できる。マーケティングの文言に頼る必要はない。技術的な事実を、自分の目で確認できる。

Local-Firstの透明性とは、「信じてください」と言うことではない。**「自分で確かめてください。その手段を提供します」**と言うことだ。


自分の目で確かめて、安心して使う

JobDoneBotは、すべての処理をブラウザ内で完結させるLocal-First設計のツールです。この記事で解説したとおり、ファイルデータがサーバーに送信されないことは、あなた自身のDevToolsで検証できます。

個人・チームで今すぐ使う:

  • PDF圧縮 ― Networkタブを開きながら試してみてください。通信ゼロで圧縮が完了します
  • 背景削除 ― 写真データを外部に送らず、ブラウザ内で即座に処理
  • 画像高画質化 ― AI超解像もローカル完結。オフラインでも動作します

すべて無料・登録不要・回数制限なし。全ツール一覧はこちら →

企業・組織で導入を検討する:
社内ネットワーク完結型のオンプレミスアプライアンスも提供しています。インターネット接続を完全に遮断した環境で、全ツール + AIアシスタントが利用可能。情報システム部門のセキュリティ監査にも対応する、データが組織外に一切出ない処理環境です。
エンタープライズ版の詳細 →

処理速度比較

他社クラウドツール3.5s
JobDoneBot (ローカル処理)推奨200ms
17.5x 高速

処理速度比較

クラウドツールA3.5s
クラウドツールB2.8s
JobDoneBot推奨200ms

手順

  1. 開発者ツールを開く

    ブラウザで F12 キー(またはCtrl+Shift+I)を押して開発者ツールを起動し、Networkタブを選択します。

  2. Networkタブの記録を開始する

    Networkタブ左上の赤い丸ボタンが有効になっていることを確認し、ログをクリアします。これで通信の監視が始まります。

  3. クラウド型ツールで通信を観察する

    一般的なクラウド型オンラインツールにファイルを渡し、POSTリクエストやファイルデータの送信が発生することを確認します。

  4. JobDoneBotで通信を観察する

    JobDoneBotのツールにファイルを渡し、ファイルデータの送信リクエストが発生しないことを確認します。Wasmモジュール読み込み以外の通信はゼロです。

  5. オフラインで動作を確認する

    Wi-Fiを切断した状態でJobDoneBotを使用し、インターネット接続なしでもファイル処理が正常に完了することを確認します。

よくある質問

はい。Chrome、Firefox、Edge、Safariなど主要なブラウザすべてに標準搭載されています。F12キーを押すだけで起動でき、特別なソフトウェアのインストールは不要です。Networkタブの見方さえ分かれば、プログラミングの知識がなくても通信の有無を確認できます。
いいえ。Webページの表示に必要なHTML、CSS、JavaScriptの読み込みや、Wasmモジュールの初回ダウンロードは正常な通信です。注目すべきは、ファイルを選択した後に発生するPOSTリクエストや、ファイルサイズに相当するデータ転送です。これらが存在しなければ、ファイルは外部に送信されていません。
Service Workerはブラウザに常駐するスクリプトで、ネットワークリクエストを仲介する役割を持ちます。JobDoneBotでは、Wasmモジュールや静的リソースをService Worker経由でキャッシュすることで、2回目以降のアクセスや完全オフライン環境でも即座にツールが利用可能になります。
はい。DevToolsはブラウザが発するリクエストをすべて記録します。VPNやプロキシは通信経路を変えるだけで、ブラウザがリクエストを発行する事実自体は変わりません。したがって、DevToolsのNetworkタブにはVPN使用の有無に関係なくすべてのリクエストが表示されます。
基本的な通信確認には十分ですが、企業の正式な監査にはより包括的な手法が推奨されます。Wiresharkなどのパケットキャプチャツールや、プロキシサーバーでの通信ログ分析を併用することで、ブラウザ以外のレイヤーでも通信の有無を検証できます。DevToolsでの確認は、日常的な簡易チェックとして極めて有効です。
#DevTools#ネットワーク監視#プライバシー検証#Local-First#WebAssembly#セキュリティ#オフライン

この記事をシェア