---
title: "localStorage内の個人情報を含むHTMLを共有するときのリスクと対策"
description: "localStorageにデータが残ったHTMLを配布するとどんな問題が起きるか理解したうえで、安全に共有するための判断軸と具体的な対処法を得られる記事。"
image: "https://giga-site.com/og-image.png"
canonical: "https://giga-site.com/articles/localstorage-personal-data-risk-countermeasure"
markdown: "https://giga-site.com/articles/localstorage-personal-data-risk-countermeasure/index.md"
category: "セキュリティ"
publishedAt: "2026-06-25"
updatedAt: "2026-06-25"
readingMinutes: 5
---
# localStorage内の個人情報を含むHTMLを共有するときのリスクと対策

ブラウザのlocalStorageに保存された個人情報を含むHTMLを共有したとき、受け取った相手のブラウザにその情報が永続的に残るリスクをご存じですか。localStorageの仕組みを理解せずにAI生成HTMLを配布すると、予期しない情報の保持が起きることがあります。リスクのシナリオごとに適切な対策を整理します。

> Source HTML: https://giga-site.com/articles/localstorage-personal-data-risk-countermeasure
> Article index: https://giga-site.com/articles/index.md

## なぜ危ないのか

localStorageに書き込まれたデータは、明示的に削除するかブラウザのデータをクリアしない限り永続的に残ります。共有URLを開いた外部のレビュアーがページを操作した際にlocalStorageに個人情報が書き込まれると、そのコンピュータを共用している別の人物がDevToolsのApplicationパネルを開くことで情報にアクセスできます。特に会社の共用PCや図書館などの公共端末で開かれた場合のリスクは高くなります。

AIが生成するHTMLには、ユーザー操作のシミュレーションとして「ログイン状態を保存する」「入力値を自動補完する」などの機能が含まれることがあります。これらの機能がlocalStorageを使っている場合、テストユーザーの情報がブラウザに書き込まれます。デモとしては便利な機能でも、不特定多数が閲覧できる環境では情報保護の問題になります。

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

## ソースで見る場所

HTMLに含まれるすべてのJavaScriptを対象に、`localStorage.setItem`の呼び出しを探します。設定される値がハードコードされているか変数経由かを確認し、変数経由の場合はその変数がどのような値を取りうるかをコードで追跡します。フォームの入力値をそのままlocalStorageに書き込むパターン（`localStorage.setItem('email', document.getElementById('email').value)`）が特に危険です。

外部JSライブラリを読み込んでいる場合、そのライブラリがlocalStorageを使っている可能性もあります。例えばフォームのバリデーションライブラリや状態管理ライブラリはlocalStorageを内部的に使うことがあります。ネットワークタブで読み込まれているライブラリのリストを確認し、それぞれのドキュメントでlocalStorageの使用有無を調べてください。

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

## 安全に共有する設定

localStorageへの書き込みが必要な機能を無効化せずに共有したい場合は、書き込む値にリスクのないダミーデータを使います。`localStorage.setItem('userEmail', 'demo@example.com')`のように、明らかに架空とわかる値に置き換えてから共有してください。フォームから動的に入力値を書き込む処理は削除するか、実行されないようにコメントアウトします。

ページを開くたびにlocalStorageをクリアする処理を追加する方法は確実ですが、機能に影響が出る可能性があります。代替として、共有URL専用のクエリパラメータ（`?preview=true`）を検出してlocalStorageへの書き込みをスキップするコードを追加する方法もあります。これにより、デモとしての動作と共有時の安全性を両立できます。

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

## 再発防止ルール

AIへのプロンプトにlocalStorageの使用ポリシーを明記します。「デモ目的のHTMLではlocalStorageに個人情報を書き込まないこと。ユーザー操作の状態管理が必要な場合はJavaScriptの変数やsessionStorageを使うこと」という指示を標準テンプレートに加えます。

共有後の後処理として、レビューが完了したURLに対してlocalStorageのデータが残っていないかをチェックする手順を確立します。特定の期間を過ぎたら共有URLを自動的に無効化する設定（ギガサイト便の期限機能など）と組み合わせると、見落としが減ります。

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

## よくある質問

### localStorageに書き込まれた個人情報はいつ削除されますか？

JavaScriptで明示的に`localStorage.removeItem`または`localStorage.clear`を呼ばない限り、ブラウザのデータクリアまで永続します。ユーザーがブラウザの設定から手動で削除するか、ブラウザのキャッシュクリアを行うまで残り続けます。

### localStorageのデータが漏えいしているか確認するにはどうすればよいですか？

DevToolsのApplicationパネルのLocal Storageセクションで対象ドメインのデータを確認します。個人情報らしきデータが含まれていれば漏えいのリスクがあります。確認後は同パネルの「Clear All」で削除してください。

### localStorageではなくCookieに個人情報が保存されている場合も同様の問題がありますか？

はい。CookieはHTTPリクエストに自動的に付与されるため、localStorageより危険度が高い場合もあります。DevToolsのApplicationパネルのCookiesセクションも合わせて確認してください。

## 関連記事

- [AI生成HTMLにlocalStorage内の個人情報が残っていないか確認する方法](https://giga-site.com/articles/localstorage-personal-data-check/index.md)
- [社外レビュー前にlocalStorage内の個人情報を検出するチェックリスト](https://giga-site.com/articles/localstorage-personal-data-external-review-checklist/index.md)
- [localStorage内の個人情報を防ぐAIプロンプトと公開前スキャン](https://giga-site.com/articles/localstorage-personal-data-prompt-scan/index.md)
- [hidden input内の個人情報を含むHTMLを共有するときのリスクと対策](https://giga-site.com/articles/hidden-input-data-risk-countermeasure/index.md)
- [クリックジャッキングを含む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)

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "localStorage内の個人情報を含むHTMLを共有するときのリスクと対策",
  "description": "localStorageにデータが残ったHTMLを配布するとどんな問題が起きるか理解したうえで、安全に共有するための判断軸と具体的な対処法を得られる記事。",
  "datePublished": "2026-06-25",
  "dateModified": "2026-06-25",
  "mainEntityOfPage": "https://giga-site.com/articles/localstorage-personal-data-risk-countermeasure",
  "url": "https://giga-site.com/articles/localstorage-personal-data-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": "localStorageに書き込まれた個人情報はいつ削除されますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "JavaScriptで明示的に`localStorage.removeItem`または`localStorage.clear`を呼ばない限り、ブラウザのデータクリアまで永続します。ユーザーがブラウザの設定から手動で削除するか、ブラウザのキャッシュクリアを行うまで残り続けます。"
      }
    },
    {
      "@type": "Question",
      "name": "localStorageのデータが漏えいしているか確認するにはどうすればよいですか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "DevToolsのApplicationパネルのLocal Storageセクションで対象ドメインのデータを確認します。個人情報らしきデータが含まれていれば漏えいのリスクがあります。確認後は同パネルの「Clear All」で削除してください。"
      }
    },
    {
      "@type": "Question",
      "name": "localStorageではなくCookieに個人情報が保存されている場合も同様の問題がありますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "はい。CookieはHTTPリクエストに自動的に付与されるため、localStorageより危険度が高い場合もあります。DevToolsのApplicationパネルのCookiesセクションも合わせて確認してください。"
      }
    }
  ]
}
```
