アップロードなしのオンラインツールはどう動くのか
公開日: · 最終更新日:
「サーバーには送信されません」という一文は多くのオンラインツールに書かれていますが、文言だけでは本当かどうか分かりません。この記事では、その言葉が技術的に何を意味するのかと、2〜3分で終わる確認方法を二つ説明します。このサイトに限らず、ほかのサイトのツールにも同じように使える方法です。
入力はどこへ行くのか
オンラインツールが入力を処理する方式は、大きく二つに分かれます。
| サーバー処理 | ブラウザ処理 | |
|---|---|---|
| 計算が行われる場所 | 運営者のサーバー | 手元の端末のブラウザ |
| 入力の行き先 | インターネットを通ってサーバーへ送られます | 端末の外に出ません |
| 結果が出るタイミング | サーバーの応答が届いたあと | 入力した直後 |
| 接続が切れたとき | 動きません | すでに開いているページは動き続けます |
サーバー処理では、ボタンを押すとページが入力をリクエストに載せてサーバーへ送ります。ページ内のプログラムがサーバーと通信するときは fetch などの機能を使い、こうして送られたリクエストはすべてブラウザに記録されます。サーバーがその入力を保存するのか、どのくらい保管するのかは、外からは確かめられません。
ブラウザ処理では、ページを開くときに計算に必要なプログラム(JavaScript、WebAssembly)も一緒にダウンロードされ、そのプログラムが手元の端末で動きます。たとえばパスワード生成に使う乱数はブラウザに組み込まれた crypto.getRandomValues() が作り、ハッシュの計算はダウンロードしたWebAssemblyのコードが端末の中で行います。サーバーの役割はプログラムを配ることだけです。
このサイトの構成
このサイトは、あらかじめ作っておいたファイルを配信するだけの静的サイトです。ツールの入力を受け取って処理するサーバープログラムがないので、入力を送る先そのものがありません。一部のツールは、初めて実行するときに追加のコードをダウンロードします。このとき発生するのはファイルを取得するリクエストで、入力した内容は含まれません。
ただし、ページが送るリクエストが一つもないわけではありません。ページを配信するホスティングサービスはIPアドレスとブラウザの情報を処理し、アクセス統計のスクリプトと広告のスクリプトはそれぞれのサーバーと通信します。これらのリクエストは、ツールに入力した内容とは関係なく発生します。どの情報が処理されるかはプライバシーポリシーにまとめてあります。
確認方法1:ネットワークタブでリクエストを見る
ブラウザの開発者ツールには、ページがやり取りするリクエストをすべて表示するネットワークタブがあります。Chrome、Edge、Firefoxで同じ手順で確認できます。
- ツールのページを開き、
F12(MacはCmd + Option + I)を押して開発者ツールを開き、Network(ネットワーク)タブを選びます。 - クリアボタンでそれまでの記録を消します。
- ツールの入力欄に
zebra-4821のような目立つ文字列を入力し、ボタンがあるツールならボタンも押します。 - 一覧に新しい行が増えるかどうかを見ます。一行も増えなければ、入力している間、ページはどこにもリクエストを送っていません。
- 行が増えた場合は、その行をクリックして、リクエストのアドレス(Headers)と送信内容(Payload)に入力した文字列が含まれているかを確認します。
行が増えたからといって、すぐに入力が送信されたことにはなりません。広告のスクリプトは入力と関係なくリクエストを送ることがあり、初回の実行時に追加のコードを取得するツールは .js や .wasm のファイルを取得するリクエストを出します。見分ける基準は、リクエストのアドレスと送信内容に入力値が入っているかどうかです。
確認方法2:オフラインに切り替える
ネットワークタブでは、入力を読み取りにくい形に変えて送る場合や、あとでまとめて送る場合までは見分けにくいものです。接続そのものを切れば、より確実に確かめられます。
- ツールのページを開き、ツールを一度実行します。追加のコードが必要なツールに、先にコードを取得させておくためです。
- インターネット接続を切ります。ChromeとEdgeではネットワークタブのスロットリング(Throttling)メニューで Offline を選び、ほかのブラウザでは端末のWi-Fiやモバイルデータ通信をオフにします。
- ページを再読み込みせずに、入力を変えてみます。結果が変わり続けるなら、計算は端末の中で行われています。
- 確認が終わったら接続を戻します。
サーバーで処理するツールは、この状態ではエラーになるか、結果が出ません。このサイトはページを端末に保存していないので、オフラインのまま再読み込みするとページ自体を読み込めません。
ブラウザ処理の限界
ブラウザで処理するからといって、すべての心配がなくなるわけではありません。
- 端末の性能とメモリ:計算は手元の端末が受け持つので、大きなファイルや長いテキストでは遅くなったり、タブが固まったりすることがあります。サーバー処理のツールなら扱えるサイズでも、ブラウザのツールでは扱えないことがあります。
- ブラウザの拡張機能:拡張機能は、権限を与えられたページの内容を読み取れます。ツールが何も送信していなくても、拡張機能には入力欄の内容が見えるということです。機密性の高い内容を扱うときは、拡張機能をオフにしたウィンドウを使ってください。
- 画面と端末:入力した内容は画面にそのまま表示され、コピーすればクリップボードに残ります。共用の端末では、使い終わったらタブを閉じてください。
- コードは変わることがあります:ページは開くたびに新しくダウンロードされるので、今日確認した結果が次に訪れたときの動作まで保証するわけではありません。
「アップロードなし」が指す範囲
「アップロードなし」は、ツールに入れた入力がどう処理されるかについての言葉で、サイト全体がどんな情報も扱わないという意味ではありません。同じ文言を掲げながら、実際には入力を送信しているサイトもありえます。だからこそ、文言よりも確認方法が大切です。稼働中のサービスの秘密鍵や実際に使っているパスワードのように、漏れると困る値を貼り付ける前に、上の二つをまず試してください。下の関連ツールですぐに試せます。