Zero Sendのしくみ
最終更新 2026.10.03
ツールに入力・貼り付けた内容は、ブラウザの中だけで処理します。サーバーへの送信、記録、保存は行いません。
Zero Sendとは
Zero Sendは、ツールに入力・貼り付けた内容を、当サイトがこのブラウザの外に送信しないというZEKILO Devの処理方針です。ここでいう入力内容とは、入力したテキスト、開いたファイルの内容と名前、処理結果のすべてを指します。当サイトは、入力内容をサーバー、アクセス解析ツール、ページのURLに送信せず、保存もしません。
このページでは、その方針がどのように実装されているか、ご自身で確認するにはどうすればよいかを説明します。最後に、Zero Sendでは対応できない範囲も記載しています。
処理する場所
- すべてのツールは、利用者のブラウザ(お使いの端末)でJavaScriptにより処理します。当サイトには、入力内容を受け取って処理するサーバー側のプログラムはありません。
- ZEKILO Devは、Cloudflare Pagesに置いた静的ファイル(HTML、CSS、JavaScript、フォント、アイコン)だけで構成されています。アプリケーションサーバー、データベース、会員アカウント、入力内容を保存する共有リンクの機能はありません。
- 小さな入力はページの中でそのまま処理します。64KBを超える入力や時間のかかる処理は、Web Workerで処理します。Web Workerは、同じブラウザの中で画面とは別に動く実行環境であり、別のコンピューターではありません。
- 正規表現のように実行時間が長くなることがある処理は、専用のWorkerで時間制限(1秒)を設けて実行します。
- ファイルを開く機能も、ファイルをブラウザの中で読み込みます。当サイトがファイルをどこかに送信することはありません。
ネットワーク通信
当サイトが行うネットワーク通信は、次の3種類です。
| 通信 | タイミング | 入力内容 |
|---|---|---|
| 当サイトの静的ファイル(ページ、スクリプト、フォントなど) | ページを開いたとき、ツールを初めて使うとき | 含まれません |
| アクセス解析(Google アナリティクス 4) | 本番サイト(dev.zekilo.com)でページを開いたとき、ツールを使ったときやエラーが出たとき | 含まれません。ツールのイベントとしては、ツールID、操作の種類、入力サイズの区分、エラーコードのみ送信します |
| 広告配信(Google AdSense) | 広告の配信開始後、広告のプログラムがあるページを開いたとき | 含まれません |
- アクセス解析として当サイトが送信するイベントは、
tool_useとtool_errorの2種類だけです。入力サイズは<1K・1-64K・64K-1M・>1Mの4つの区分のいずれかとしてのみ送信し、正確な長さは送信しません。許可リストにない値はプログラムで取り除きます。 - アクセス解析のプログラムは、本番ドメインでページを開いた場合にのみ、かつ測定IDを設定した後にのみ読み込みます。アクセス解析と広告のプログラムは Google が提供するもので、読み込まれた後は Google のサーバーへ独自に通信します。送信される項目は外部送信についてに記載しています。
- 「このサイトについて」と各種ポリシー・案内ページ(このページを含みます)には、広告のプログラムを組み込みません。
- 「コピー」は結果をクリップボードに入れ、「貼り付け」はボタンを押したときにだけクリップボードを読み取って入力欄に入れます。「ダウンロード」はブラウザの中でファイルを作成して保存します。いずれもネットワーク通信ではありません。
- エラー報告リンクは、利用者のメールアプリを開きます。ツールID、ページのURL、ブラウザ・OSの情報、エラーコードだけをあらかじめ入力し、入力内容は含めません。
保存する値
入力と結果は保存しません。再読み込みするかタブを閉じると消えます。ブラウザのストレージに保存する値は、次のものだけです。
zd-opt:ツールID(localStorage):インデントなどのツールのオプションの値。例:zd-opt:json-formatterzd-lang(localStorage):言語の選択メニューで選んだ表示言語zd-consent(localStorage):外部送信のご案内バナーを確認した日付zd-ref(sessionStorage):ほかのサイトからトップページ(/)にアクセスし、韓国語・日本語のページへ自動的に移動する際の参照元ページのURL。アクセス解析に1回だけ引き渡した後に削除し、タブを閉じても消去されます。
当サイトが自ら設定する Cookie はありません。開発者ツールのApplication(アプリケーション)タブでLocal StorageとSession Storageを開くと、上記の値だけであることを確認できます。
ライブラリ
- YAML、CSV、SQL、テキスト比較、ハッシュなど、一部のツールはオープンソースライブラリを使用しています。ライブラリはサイトと一緒にビルドし、当サイトのURL(
/_astro/以下)から配信します。外部のCDNからは読み込みません。 - ツールの処理プログラムとライブラリは、そのツールに初めて入力したときに当サイトからダウンロードします。このときの通信はファイルを取得するためのもので、入力内容は含まれません。
- フォントも当サイトから配信します。
- ライブラリはバージョンを固定して使用し、一覧とライセンスをオープンソースライセンスで公開しています。
コンテンツセキュリティポリシー(CSP)
- 当サイトは、レスポンスヘッダーでコンテンツセキュリティポリシー(Content-Security-Policy)を送信しています。このポリシーの
connect-srcは、スクリプトがデータをやり取りできる相手を定める項目で、当サイト自身('self')と Google のアクセス解析・広告のサーバーだけを列挙しています。 script-srcには'unsafe-eval'を含めていません。当サイトは、文字列をプログラムとして実行する方法(eval)を使用しません。- 現在、このポリシーはレポート専用(
Content-Security-Policy-Report-Only)のヘッダーで送信しています。レポート専用では、ブラウザはポリシーに反する通信を止めず、開発者ツールのコンソールに違反として表示します。アクセス解析・広告との競合がないことを確認したうえで、通信を止める方式に切り替える予定です。切り替えた際は、このページを更新します。 - CSPは補助的な仕組みです。当サイトが入力内容を送信しないことは、次の自動検査とご自身での確認によって確かめます。
自動検査
- 自動テストが実際のブラウザでツールに目印の文字列(
ZD-SECRET-7f3a)を入力し、処理・コピー・ダウンロードを行ったうえで、ブラウザが送信したすべてのリクエストを検査します。 - リクエストのURL、本文、ヘッダー、WebSocketで送信した内容に目印が含まれていると、テストは失敗します。URLエンコード、Base64、16進数に変換された形も探します。
- localStorage、sessionStorage、ページのURL、Cookie に目印が残っていないか、許可した名前(
zd-opt:…、zd-lang、zd-consent)以外の値が localStorage に作られていないかも検査します。 - この検査は、Chromium・Firefox・WebKitの3つのブラウザエンジンで実行し、プログラムを変更するたびに再実行します。
- この検査は、アクセス解析と広告の設定を有効にしたテスト用のビルドで実行します。ただし、Google のアクセス解析・広告のプログラムそのものはテストでは実行しません(Google への通信は途中で止め、空の応答に置き換えます)。
- 当サイトのプログラムがアクセス解析に渡す値(ツールID、操作の種類、入力サイズの区分、エラーコード)に入力内容が含まれないことは、本番ドメインを模したテストで別途確認しています。
ご自身で確認する方法
ブラウザの開発者ツールを使えば、どなたでも確認できます。実際の秘密情報ではなく、my-test-12345 のような見つけやすいテスト用の文字列をお使いください。
- ツールのページを開き、開発者ツールを開きます(F12 または Ctrl+Shift+I、macOSは Cmd+Option+I)。
- Network(ネットワーク)タブを開き、記録を消去します。
- ツールにテスト用の文字列を貼り付け、結果が表示されることを確認します。
- 新しく発生したリクエストを確認します。ツールを初めて使うときは、
/_astro/で始まるスクリプトファイルのリクエストが発生することがあります。ファイルを取得するGETリクエストで、URLにテスト用の文字列は含まれません。 - 本番サイトでは、
google-analytics.comへのリクエストが発生することがあります。リクエストを選択してURLとPayload(ペイロード)を見ると、イベント名、ツールID、操作の種類、入力サイズの区分と、Google アナリティクスが付加するアクセス情報(ページのURL、識別子など)が含まれ、テスト用の文字列は含まれていません。 - リクエストの一覧にメソッドがPOSTのものがあれば、Payloadを開いてテスト用の文字列が含まれていないことを確認します。
- ツールに一度入力して結果を確認した後、NetworkタブでOffline(オフライン)を有効にするか、ネットワーク接続を切ってから、入力を変更してみます。接続がなくても結果が変わり続ければ、処理がブラウザの中で行われていることが分かります。
Zero Sendの限界
Zero Sendは、当サイトのプログラムが入力内容を送信・保存しないという意味です。次のものは、当サイトでは防げません。
- ブラウザの拡張機能:ページの内容を読み取る権限を持つ拡張機能は、入力内容も読み取れます。気になる場合は、拡張機能を無効にしたウィンドウ(シークレットウィンドウなど)でご利用ください。
- 端末の状態:マルウェアに感染した端末、キー入力や画面を記録するプログラム、組織が導入した監視・セキュリティソフトは、ブラウザの中の内容を見ることができます。
- 画面共有と録画:画面共有、リモートサポート、画面録画の最中は、画面に表示されている入力内容がそのまま相手に伝わります。
- クリップボード:コピーした結果は、OSのクリップボードに入ります。クリップボードの履歴や端末間の同期を有効にしている場合は、そこに残ることがあります。
- ダウンロードしたファイル:ダウンロードした結果のファイルは端末に残ります。その後の管理は利用者ご自身で行ってください。
- 第三者のプログラム:本番サイトでは、Google のアクセス解析・広告のプログラムが同じページの中で動作します。当サイトはこれらのプログラムに入力内容を渡しませんが、プログラムの内容は Google が管理しています。広告・トラッキングのブロック機能でこれらを止めても、ツールはそのままお使いいただけます。
- アクセスの記録:サイトを開くためのリクエストそのもの(IPアドレス、ページのURL、ブラウザの情報)は、ホスティング事業者とアクセス解析に送信されます。入力内容とは関係ありませんが、何も送信されないという意味ではありません。
- 今後の変更:この説明は、上に表示した最終更新日時点のものです。サイトのプログラムは変更されることがあるため、重要な値を扱う前に、上記の方法でご自身でご確認ください。
本番環境のキーやパスワードのように、漏えいした場合の影響が大きい値については、どのオンラインツールを使う場合でも、まず所属する組織のセキュリティ規程をご確認ください。
お問い合わせ
このページの説明と実際の動作が異なると思われる場合は、お知らせください:manager@zekilo.com