abox.tools

言語: 日本語

オンライン変換サイトにファイルをアップロードしても安全ですか?

正直な答えはたいてい「たぶん大丈夫。ただし確かめようがない」です。ここでは、アップロードがファイルに実際何をするのか、なぜ多くの道具がいまだにそうするのか、そして目の前の道具にそれが必要なのかを見分ける4つの試し方を説明します。

Markdownで表示

短い答え

機密でないファイルと、作業に合う条件のサービスなら、アップロードは適切な選択になり得ます。保存とアクセスは提供者や機能で異なり、削除のカウントダウンだけでは各コピーの行き先を証明できません。

問題は、彼らが嘘をついていることではありません。嘘かどうかを確かめる手段が、こちらにないことです。ファイルが端末を離れた瞬間から、そのあと何が起きるかについての約束は、すべて信用で受け取るしかない約束になります。どれだけの期間保管されるのか、誰が手を伸ばせるのか、削除のタイマーより長生きするバックアップに複製されていないか、その会社が売られたり侵入されたりしたらどうなるのか。そのどれも、外からは見えません。

ですから、役に立つ問いは「このサイトを信用するか」ではありません。「この仕事に、そもそもファイルが出ていく必要があるのか」です。多くの、そして増えつつある仕事について、答えは「ない」です。そして答えが「ない」なら、信用の問いは、答えなければならない問いではなくなります。

「アップロード」が実際にしていること

アップロードはブラウザーから別のコンピューターへファイルデータを送ることです。元のファイルの場合も、変換したコピーの場合もあります。ファイルを選ぶだけではアップロードになりません。ローカルツールは送らずに読めます。

サーバー処理は作業ファイル、要求を識別するログ、結果キャッシュ、バックアップを作ることがあります。確認すべき可能性であり、全サービスが必ず三つのコピーを作るわけではありません。外部のブラウザーテストで内部の削除や保存は確認できません。

名前と埋め込まれたメタデータが一緒に送られる場合があります。写真には場所、時刻、カメラ、ソフトウェア、サムネイルが含まれることがありますが、実際の項目は端末、設定、編集で変わります。全スマホ写真にあると仮定せず、ファイルを確認してください。

それでも多くの道具がアップロードする理由

ファイルが欲しいからではありません。ウェブの歴史のほとんどの期間、ほかに手がなかったからです。ブラウザは動画をデコードできず、指定した画質で画像をエンコードし直せず、ファイル形式を解析できませんでした。FFmpegとImageMagickを積んだサーバーには、それができました。アップロードは商売の仕組みではなく、その仕事ができる唯一の場所でした。

それは最近、静かに事実でなくなりました。ブラウザはいまやWebAssemblyを備え、同じコンパイル済みコーデックをネイティブに近い速度で走らせます。WebCodecsは、端末にすでにあるハードウェアの動画エンコーダーを見せてくれます。Canvas APIは画像を直接デコードしてエンコードし直せます。かつてサーバーが必要だった仕事は、いまやすでにそのファイルを持っている端末の上で走ります。

それでもアップロードする道具は多くありますし、正直な理由もあります。誰も書き直したくない既存の処理系、ブラウザ側にデコーダーのない形式、スマホには本当に重すぎる仕事。あまり正直でない理由もあります。サーバーとは、アカウントと利用枠と有料プランが住む場所だということです。ブラウザの中だけで動く道具は、従量課金にしにくいのです。

自分で試せる4つの確認方法

実際に使う操作と入力で確認します。それぞれは回答の一部を示し、組み合わせると一つだけより強い証拠になります。

1. ローカル操作のために接続を切る

完全に読み込み、キャッシュがあれば準備完了の表示を待ちます。接続を切り、端末内のファイルを処理します。完了すれば、その操作は切断中にサーバーを必要としなかったと分かります。失敗は資源不足や非対応でも起きるので、アップロードの証拠ではありません。成功も再接続後を証明しません。オフラインガイドに説明があります。

2. リクエストを調べる

操作前にDevToolsを開き、一覧を消去してログを保持します。接続先、URLパラメーター、本文、WebSocketメッセージを調べます。転送サイズは応答を示すことが多く、小さな要求も抽出や圧縮したデータを送れます。ファイルのサイズとの比較だけでは不十分です。通常の一覧はWebRTCの送信内容を示しません。伝送コードとブラウザーのWebRTC診断を確認します。

3. Content-Security-Policyを読む

connect-src指令はfetchやWebSocketなどの接続先を制限します。許可済み第三者にもデータは送れます。他の指令は画像、フォーム、資源を扱い、この一覧はWebRTCの相手間通信を説明しません。CSPは制約であり、内容監査や単独の非アップロード証明ではありません。

4. ソース内のデータを追う

公開ソースと生成コードを比較します。選んだファイルをfetch、XMLHttpRequest、sendBeacon、WebSocket、RTCPeerConnectionで追い、フォーム、資源URL、アプリへの引き渡しも確認します。これは例であって全経路ではありません。外部サービスやフィードバックのコードも含め、各経路にどのデータが渡るかが決め手です。

「ブラウザの中で動く」が意味しないこと

正確に言っておく価値があります。この言い回しは緩く使われますし、このサイトも、自分が提案しているのと同じ基準を自分に課さなければならないからです。

アップロードして本当に問題ないとき

これは、あらゆるアップロードが間違いだという主張ではありません。中身が機微なものでなく、そのほうが楽なら送ってください。仕事が本当に端末には重すぎるとき、形式にブラウザ側のデコーダーがないとき、あるいはすでに関係があって規約も実際に読んだサービスを使っているときも同じです。

もっと慎重になるべきなのは、ファイルの中身が、公開の場に投稿しないようなものである場合です。身分証、医療画像、契約書、共有するつもりのなかった住所や顔が写っているもの、位置情報を確かめていない写真。それらについては、信用するしかない道具より、確かめられる道具のほうが選ぶ価値があります。信用したほうが裏切りそうだからではなく、確かめられるほうでは、その問いがそもそも生じないからです。

このサイトが、その4つの確認にどう答えるか

確かめろと言っておきながら、自分だけは免除してくれと頼むガイドは、おかしなものでしょう。ですから、順番に答えます。

プライバシーページに境界を説明します。画像URL取り込み、任意の為替とアプリ引き渡し、ブラウザー間共有、リモートカメラ、広告、Analytics、固定のフィードバックです。意図した転送は、処理用のアップロードとは別です。

ローカル作業の例は目標サイズに向けた圧縮、動画切り抜き、EXIFとGPS削除、画像からPDF作成です。対応形式と保存結果を確認してください。処理用アップロードもアカウントも不要です。

ローカル処理の説明、ソースの参照先、読み込んだ資源のリアルタイム摘要を示すプライバシーパネル。
主張と対応するソースを示すパネルです。資源の摘要は自分で通信を確認する手掛かりですが、内容を独立に検査するものではありません。