---
title: "source mapの露出を含むHTMLを共有するときのリスクと対策"
description: "ソースマップが外部公開されたHTMLに残っているリスクと、ビルド設定・配布設定・監視の3段階で対策を取りたい開発者・情報セキュリティ担当者向けの実践ガイドです。"
image: "https://giga-site.com/og-image.png"
canonical: "https://giga-site.com/articles/source-map-risk-countermeasure"
markdown: "https://giga-site.com/articles/source-map-risk-countermeasure/index.md"
category: "セキュリティ"
publishedAt: "2026-06-25"
updatedAt: "2026-06-25"
readingMinutes: 5
---
# source mapの露出を含むHTMLを共有するときのリスクと対策

Reactアプリやバンドルされたアプリケーションをビルドした際に生成されるソースマップは、開発者にとって便利なデバッグツールですが、外部に公開されると重大なソースコード漏えいにつながります。本記事では、ソースマップ露出のビジネスリスクを具体的に説明し、除去・制限・監視の3段階の対策を実務的に解説します。

> Source HTML: https://giga-site.com/articles/source-map-risk-countermeasure
> Article index: https://giga-site.com/articles/index.md

## なぜ危ないのか

ソースマップが有効な状態で本番サイトを公開すると、ブラウザのDevTools（Sourcesタブ）から元のソースコードを完全に閲覧できます。minifyやobfuscationによる難読化が完全に無効化されます。コードの中にコメントで記載した設計判断やAPIエンドポイントのURL、認証ロジックの詳細が全て見える状態になります。

ソースマップの存在は攻撃者にとって有利な足がかりとなります。アプリケーションの内部構造を把握することで、SQLインジェクションやXSSなどの脆弱性の探索効率が大幅に上がります。ソースマップが公開されていた実際のインシデントでは、元のコードに残っていたAPIキーがそのまま読み取られたケースが報告されています。

- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく

## ソースで見る場所

公開済みのサイトをチェックする場合は、ブラウザのDevToolsを開きSourcesタブを確認してください。左パネルにソースファイルのツリーが展開され、元のファイル名（App.tsx、index.jsなど）が表示されていれば、ソースマップが機能している状態です。minifyされたファイル名のみが表示されていれば、ソースマップは無効化されています。

サーバー側での確認は`curl -I https://your-site.com/static/js/main.chunk.js.map`を実行してください。200 OKが返れば`.map`ファイルが公開されています。403や404が返れば公開されていません。全ての`.map`ファイルに対して同様の確認を行い、少なくとも一つでもアクセス可能なものがあれば対応が必要です。

- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する

## 安全に共有する設定

社外共有用HTMLとしてビルドする場合は、本番ビルドと同じソースマップ無効化設定を適用してください。Viteであれば`build.sourcemap: false`、webpack/CRAであれば`GENERATE_SOURCEMAP=false`を環境変数で設定します。レビュー共有用ビルドのために別の`.env.review`ファイルを作り、CI/CDのレビュービルドジョブで使用する設定にすると管理が楽になります。

ギガサイト便でファイルをアップロードする際は、ビルド成果物のうち`dist/`または`build/`ディレクトリの中から`.html`と`.css`、`.js`のみを選択してアップロードしてください。`.map`ファイルはアップロード対象から除外することを共有フローのルールとして明文化してください。

- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する

## 再発防止ルール

本番・外部共有向けのビルドコマンドを`Makefile`またはpackage.jsonのscriptsに定義し、そのコマンド内でソースマップ無効化が保証されるようにしてください。`build:external`という専用スクリプトで`GENERATE_SOURCEMAP=false react-scripts build`を実行する設計にすれば、担当者が設定を意識しなくてもソースマップが含まれない成果物を得られます。

定期的な監視として月1回、公開サイトのDevToolsを開いてSourcesタブを確認する時間を設けてください。設定変更やライブラリのアップデートによって意図せずソースマップが有効になるケースがあります。自動化するならLighthouseのCIプラグインを使ったチェックや、自作のcurlスクリプトをCronで定期実行する方法が有効です。

- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する

## よくある質問

### ソースマップを削除するとバグ発生時の原因調査が困難になりますか？

Sentryなどのエラートラッキングサービスにビルド時にソースマップをアップロードすれば、本番環境にファイルを置かずにスタックトレースを元のコードで確認できます。SentryはCI/CDとの統合が簡単で、デプロイのたびに自動アップロードする設定が公式ドキュメントに詳しく記載されています。

### Cloudflare PagesやVercelでホスティングする場合もソースマップが公開される可能性はありますか？

ビルド設定でソースマップ生成を無効化していれば、ホスティング環境に関係なく`.map`ファイルは生成されません。ただしプラットフォーム側の設定でビルドオプションが上書きされることがあるため、デプロイ後にDevToolsで実際にSourcesタブを確認することが重要です。

### すでにソースマップが公開されてしまっている場合、優先して対処すべきことは何ですか？

まずソースマップを無効化したビルドで即時デプロイしてください。次にソースマップから読み取れるコードにAPIキーやシークレットがハードコードされていなかったか確認し、もし含まれていた場合は該当のキーを即座にローテーションしてください。アクセスログを確認してソースマップに対するアクセスがあったかも調査します。

## 関連記事

- [クリックジャッキングを含むHTMLを共有するときのリスクと対策](https://giga-site.com/articles/clickjacking-risk-risk-countermeasure/index.md)
- [http混在を含むHTMLを共有するときのリスクと対策](https://giga-site.com/articles/mixed-content-risk-risk-countermeasure/index.md)
- [XSSを含むHTMLを共有するときのリスクと対策](https://giga-site.com/articles/xss-risk-risk-countermeasure/index.md)
- [オープンリダイレクトを含むHTMLを共有するときのリスクと対策](https://giga-site.com/articles/open-redirect-risk-risk-countermeasure/index.md)
- [AI生成HTMLにsource mapの露出が残っていないか確認する方法](https://giga-site.com/articles/source-map-check/index.md)
- [社外レビュー前にsource mapの露出を検出するチェックリスト](https://giga-site.com/articles/source-map-external-review-checklist/index.md)

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "source mapの露出を含むHTMLを共有するときのリスクと対策",
  "description": "ソースマップが外部公開されたHTMLに残っているリスクと、ビルド設定・配布設定・監視の3段階で対策を取りたい開発者・情報セキュリティ担当者向けの実践ガイドです。",
  "datePublished": "2026-06-25",
  "dateModified": "2026-06-25",
  "mainEntityOfPage": "https://giga-site.com/articles/source-map-risk-countermeasure",
  "url": "https://giga-site.com/articles/source-map-risk-countermeasure",
  "inLanguage": "ja",
  "image": "https://giga-site.com/og-image.png",
  "articleSection": "セキュリティ",
  "author": {
    "@type": "Organization",
    "name": "ギガサイト便"
  },
  "publisher": {
    "@type": "Organization",
    "name": "ギガサイト便"
  },
  "mainEntity": [
    {
      "@type": "Question",
      "name": "ソースマップを削除するとバグ発生時の原因調査が困難になりますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sentryなどのエラートラッキングサービスにビルド時にソースマップをアップロードすれば、本番環境にファイルを置かずにスタックトレースを元のコードで確認できます。SentryはCI/CDとの統合が簡単で、デプロイのたびに自動アップロードする設定が公式ドキュメントに詳しく記載されています。"
      }
    },
    {
      "@type": "Question",
      "name": "Cloudflare PagesやVercelでホスティングする場合もソースマップが公開される可能性はありますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "ビルド設定でソースマップ生成を無効化していれば、ホスティング環境に関係なく`.map`ファイルは生成されません。ただしプラットフォーム側の設定でビルドオプションが上書きされることがあるため、デプロイ後にDevToolsで実際にSourcesタブを確認することが重要です。"
      }
    },
    {
      "@type": "Question",
      "name": "すでにソースマップが公開されてしまっている場合、優先して対処すべきことは何ですか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "まずソースマップを無効化したビルドで即時デプロイしてください。次にソースマップから読み取れるコードにAPIキーやシークレットがハードコードされていなかったか確認し、もし含まれていた場合は該当のキーを即座にローテーションしてください。アクセスログを確認してソースマップに対するアクセスがあったかも調査します。"
      }
    }
  ]
}
```
