セキュリティ

共有HTMLに埋め込んだPDFやファイルから情報が漏れる落とし穴

HTMLに資料を埋め込んで一緒に共有すると便利ですが、埋め込んだPDFやファイルそのものから情報が漏れることがあります。本文を隠したつもりでも、ファイルのメタデータや抜き取りで中身が露出する場面があるのです。具体的なリスクと確認手順を整理します。

埋め込みファイルから漏れる仕組み

HTMLにPDFや画像をbase64で埋め込んだり、ファイルへのリンクを置いたりすると、そのファイルはページの一部として配布されます。表示上は一部だけ見せているつもりでも、ファイル自体は丸ごと相手の手元に届きます。

PDFには作成者名、編集履歴、使用ソフト、社内のファイルパスといったメタデータが残っていることがあります。本文に書いていない情報が、ファイルのプロパティから読み取れてしまうのです。

また、ページ上で一部しか見せていないPDFでも、埋め込まれている以上は全ページが手元にある状態です。表示範囲を絞ること自体は、内容を隠す手段にはなりません。

base64埋め込み特有のリスク

base64でファイルをHTMLに直接埋め込むと、ファイルの中身がそのままHTMLソースに文字列として含まれます。ページのソースを表示すれば、その文字列をデコードして元のファイルを復元できます。

つまり『リンクを見せていないから安全』ではありません。HTMLの中にデータが入っているなら、ソースから取り出される前提で考える必要があります。隠したつもりのファイルが抜き取られる典型例です。

見せる必要のないファイルは、そもそもHTMLに埋め込まないのが最も確実です。本当に渡すべきものだけを同梱し、不要なファイルは削ぎ落とします。

よくあるNG例と安全な直し方

共有HTMLに埋め込んだPDFやファイルから情報が漏れる落とし穴では、「検索に出さない」と「見られないようにする」を混同しないことが重要です。noindexやrobots.txtは検索エンジンへの指示であり、アクセス制限そのものではありません。

安全に共有するには、誰に見られると困るかを先に決め、URL共有だけで足りるのか、認証や期限が必要なのかを選びます。共有相手と機密度が決まったら、URLのみ・パスワード・メール認証・会社ドメイン認証のどれで渡すかを選びます。

  • NG: 機密情報入りHTMLを認証なしURLで共有し、noindexだけで安心する
  • OK: パスワード・メール認証・会社ドメイン認証で閲覧者を絞る
  • NG: テスト用APIキーや社内URLをHTML内に残したまま渡す
  • OK: 公開前に外部送信先、秘密情報、フォーム送信先を確認する

公開前の確認手順

埋め込みファイルを含むHTMLを公開する前に、次の手順で漏れがないか確認します。

この確認は面倒でも一度通せば、本文に書いていない情報が裏側から漏れる事故をほぼ防げます。特に外部に配るHTMLでは省略しないことをおすすめします。

  1. 埋め込んだPDFや画像のプロパティでメタデータ(作成者・パス・履歴)を確認する
  2. 不要なメタデータはPDFや画像から削除してから埋め込む
  3. 渡す必要のないページやファイルが混ざっていないか中身を見直す
  4. base64で埋め込んだ場合はソース表示でデータが取り出せる前提で機密度を判断する
  5. 見せたい範囲を超える情報が含まれるなら埋め込みをやめてリンク+認証に切り替える

メタデータの落とし穴

PDFのメタデータには、編集前のファイル名や保存先のフォルダ構成が残ることがあります。これだけで社内のプロジェクト名や組織構造が推測されることもあり、軽視できません。

Officeソフトから書き出したPDFは、コメントや変更履歴、非表示のレイヤーが残る場合があります。最終版として渡すなら、これらを削除してから書き出します。

メタデータの除去は、PDF編集ソフトのプロパティ削除機能や『最終版にする』処理で行えます。渡す直前に一度プロパティを開いて中身を確認する習慣をつけると安全です。

安全に同梱するための方針

原則は『渡してよいものだけを、メタデータを掃除してから同梱する』です。便利さに任せて手元のファイルをそのまま埋め込むと、思わぬ情報がついてきます。

機密度が高いファイルは埋め込みを避け、認証付きの公開URLで配布範囲を絞る方が安全です。誰が見られるかを制御できるかどうかが分かれ目になります。

ギガサイト便では認証方式と公開期限を設定でき、配布範囲と期間を絞れます。ただしファイル自体のメタデータ掃除は事前の作業です。埋め込む前のクリーニングと、配布時の認証・期限設定を両方行ってください。

よくある質問

PDFの一部だけ表示すれば残りは見られませんか

見られます。埋め込んだPDFは全体が相手の手元に届くため、表示範囲を絞っても全ページを取り出せます。見せたくないページは埋め込まないのが確実です。

base64で埋め込めばリンクが見えないので安全ですか

安全ではありません。base64のデータはHTMLソースに含まれ、ソース表示からデコードして元ファイルを復元できます。HTMLに入っているものは取り出される前提で考えてください。

メタデータからどんな情報が漏れますか

作成者名、編集履歴、使用ソフト、社内のファイルパスやフォルダ名などが残ることがあります。本文に書いていない情報がプロパティから読み取れる場合があるため、渡す前に削除します。

機密度の高いファイルはどう渡すべきですか

埋め込みを避け、メタデータを掃除したうえで認証付きの公開URLで配布範囲を絞るのが安全です。誰が見られるかを制御できることが重要です。

noindexを設定すれば認証は不要ですか?

不要ではありません。noindexは検索結果への表示を抑えるための指定で、URLを知っている人の閲覧を止める仕組みではありません。閲覧者を制限したい場合は認証が必要です。

関連記事

セキュリティ

共有HTMLに載せる情報を最小化する考え方

確認用HTMLに本番の顧客データや内部情報をそのまま貼っていませんか。共有する情報が多いほど漏えい時のダメージは大きくなります。必要なものだけを残す「データ最小化」の考え方で、共有HTMLから何を削り何を残すかを解説します。

4分で読める
セキュリティ

共有HTMLの画像に残るExif・位置情報を消してから渡す

写真の本文では場所を伏せていても、Exifデータに撮影地や端末情報が残っていると情報が漏れます。共有HTMLに画像を載せる前に確認すべき項目と、位置情報の削除手順を解説します。

5分で読める
セキュリティ

アップロードファイルにマルウェアを混ぜない注意

HTMLやZIPは複数の素材を寄せ集めて作られがちで、ダウンロードした素材に不審なコードが紛れていることがあります。アップロードしたファイルが閲覧者にそのまま届く以上、マルウェア混入を防ぐ確認手順を知っておくことが重要です。

4分で読める
セキュリティ

CSP(コンテンツセキュリティポリシー)の基礎と考え方

ブラウザに「読み込んでよいリソース」を宣言してスクリプト実行を制御するCSPは、名前の難しさのわりに考え方はシンプルです。HTMLを共有・公開する場面でどう使うかを、実務感覚で理解したい方向けに基礎から解説します。

5分で読める
「セキュリティ」の記事をもっと見る →