セキュリティ

ZIPサイトに紛れ込む.gitや設定ファイルから情報が漏れるのを防ぐ

制作中のサイトをZIPで丸ごと渡すとき、見えていない隠しファイルがそのまま入り込むことがあります。.gitフォルダや.envには、コミット履歴や接続情報など外に出してはいけない中身が含まれます。本記事では混入の仕組みと、共有前にきれいにする手順を整理します。

なぜ.gitや設定ファイルが危険なのか

.gitフォルダにはコミット履歴のすべてが保存されています。たとえ最新のファイルから削除した情報でも、過去のコミットをたどれば復元できてしまいます。一度コミットしたパスワードやトークンは、後から消したつもりでも履歴の中に残り続けます。

.envや設定ファイルには、データベースの接続先、外部サービスのキー、管理画面のパスワードなどが書かれていることがあります。これらは本来サーバー内部だけで使うもので、閲覧者に渡る前提のものではありません。

ZIPで丸ごと固めると、こうした隠しファイルは画面上に見えないまま一緒に圧縮されます。受け取った相手が展開すれば中身は読めてしまうため、共有前の確認が欠かせません。

混入しやすいファイルの種類

先頭にドットが付くファイルやフォルダは、OSの初期設定では非表示になっていることが多く、見落としの原因になります。普段の作業画面に出てこないからこそ、ZIPに紛れていても気づきにくいのです。

代表的なものを把握しておくと、共有前のチェックがしやすくなります。

  • .git(コミット履歴のすべて)
  • .env / .env.local(接続情報やキー)
  • node_modulesやvendorなどの依存フォルダ(容量が膨らむ原因)
  • .DS_StoreやThumbs.db(OSが作る不要ファイル)
  • エディタの設定フォルダ(.vscode、.ideaなど)
  • バックアップやログファイル(.bak、.log)

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

ZIPサイトに紛れ込む.gitや設定ファイルから情報が漏れるのを防ぐでは、「検索に出さない」と「見られないようにする」を混同しないことが重要です。noindexやrobots.txtは検索エンジンへの指示であり、アクセス制限そのものではありません。

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

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

共有前にきれいにする手順

公開用のZIPは、作業フォルダをそのまま固めるのではなく、必要なファイルだけを集めた別フォルダから作るのが安全です。次の流れで進めると混入を防げます。

  1. 公開に必要なHTML・CSS・JS・画像だけをコピーした新しいフォルダを作る
  2. 先頭がドットのファイルやフォルダが残っていないか、隠しファイル表示をオンにして確認する
  3. node_modulesや依存フォルダ、ログ・バックアップを削除する
  4. ビルド成果物だけを公開する場合は、ソースや設定ファイルを含めない
  5. そのフォルダだけをZIPに圧縮する
  6. 圧縮後に一度自分で展開し、中身に不要ファイルがないか目視で確かめる

公開後に履歴をたどられないために

.gitを含めたZIPを一度配ってしまうと、相手の手元に履歴が渡った状態になります。回収は事実上できないため、配る前のチェックがすべてだと考えてください。

万一含めて配布してしまった場合は、その履歴に含まれていた認証情報を無効化し、新しいものに切り替えるのが基本です。ファイルを消すだけでは、すでに渡った情報は守れません。

再発を防ぐには、公開用のエクスポート手順を一つ決めて毎回同じ流れで作ることが効果的です。手作業の判断が減るほど、混入のリスクは下がります。

ギガサイト便でZIPを共有するときの注意

ギガサイト便はCSS・JS・画像を含むZIPをドロップすると、その場で共有URLを発行できるサービスです。便利さの一方で、アップロードするZIPの中身は自分で整える必要があります。サービスは隠しファイルの是非まで判断してくれるわけではありません。

アップロード前に上記の手順でZIPをきれいにしておけば、共有URLに不要なファイルを載せずに済みます。さらに認証を併用したり公開期限を設定したりすれば、見せたい相手にだけ、必要な期間だけ届けられます。

よくある質問

.gitフォルダを消せば履歴の漏えいは防げますか

ZIPに含めずに配れば、その配布物から履歴を読まれることはありません。ただし過去に.gitを含めて配ってしまった分は回収できないため、その履歴に入っていた認証情報は無効化して入れ替えるのが安全です。

隠しファイルが入っているかどうか、どう確認すればよいですか

OSの設定で隠しファイルの表示をオンにして、フォルダ内に先頭がドットのファイルやフォルダがないか目視します。ZIP作成後に一度展開して中身を確かめると、より確実です。

ビルド済みのサイトなら設定ファイルは入りませんか

ビルド成果物だけを配れば設定ファイルは含まれにくくなりますが、出力フォルダに.envやソースをコピーしてしまうケースもあります。公開用フォルダを別に用意し、必要なファイルだけを置くのが確実です。

ギガサイト便にアップロードすれば不要ファイルは自動で除去されますか

アップロードするZIPの中身は利用者が整える前提です。隠しファイルや依存フォルダを取り除いてから圧縮し、共有URLには必要なファイルだけを載せるようにしてください。

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

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

関連記事

セキュリティ

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

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

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

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

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

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

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

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

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

共有HTMLのフォーム送信先・データの扱いを確認する

共有するHTMLにフォームが含まれているとき、その入力がどこへ送られるか把握していますか。テンプレート流用やAI生成では送信先が意図しない場所のままのことがあります。共有前にフォームの送信先とデータの扱いを確認する方法を解説します。

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