LOCALSTORAGE ファイル形式とは?
.localstorage ファイルは、ウェブブラウザが HTML5 Web Storage (localStorage) を実装するために作成するディスク上のデータベースです。これは、ウェブサイトがセッション間でデータを保持できるようにするキー・バリュー型のストレージです。LOCALSTORAGE ファイルはクッキー(cookie)と似た機能を果たしますが、Web Storage 仕様では、より広範で強力なストレージ操作のセットが定義されています。
LOCALSTORAGE ファイルの独自性
LOCALSTORAGE ファイルに保存されたデータは、ブラウザを閉じても削除されません。これらのデータはユーザーのコンピュータに保存され、ウェブサーバーが自動的にアクセスすることはできません。LOCALSTORAGE データは、オリジン間の隔離を提供するため、それを作成したのと同じドメインの JavaScript を介してのみ読み書きできます。LOCALSTORAGE ファイルは通常、クッキーファイルよりもサイズが大きくなります。
どのウェブブラウザが LOCALSTORAGE ファイルを使用しますか?
LOCALSTORAGE は、すべてのモダンブラウザでサポートされています。初期のサポートは 2008年から2009年頃に Chrome 4、Firefox 3.5、Safari 4、Opera 10.5、および Internet Explorer 8 で開始されました。モバイルのサポートは Android Browser および iOS Safari で続きました。
サイズ制限
HTML5 仕様では、1オリジンあたり 5 MB の制限を推奨しています。デスクトップブラウザでは通常、以下が許可されています:
- Safari では 5 MB
- Chrome および Firefox では 10 MB
モバイルブラウザでは一般的に、1オリジンあたり 2〜5 MB というより厳しい制限が課されます。
ストレージ形式
古い WebKit ベースのブラウザ(Safari および初期の Chrome)は、LOCALSTORAGE データを、キーと値をマッピングする ItemTable を持つ SQLite データベース として保存していました。Google Chrome は Chrome 28 (2013年) 頃に localStorage のバックエンドを SQLite から LevelDB に移行しました。モダンな Chrome は、これらのファイルをユーザープロファイルの Local Storage 内にある leveldb/ サブフォルダに保持します。一部の Electron アプリや古い Chromium ベースのブラウザは、現在も .localstorage SQLite ファイルを書き出します。
セキュリティと安全性
リスク: LOW.localstorage ファイルは、ウェブサイトのデータ(設定、セッション・トークン、キャッシュ値)を含む受動的な SQLite データベースです。ウェブサイトによって保存されたセッション・トークンや個人情報などの機密データが含まれている可能性があります。これらのファイルを共有したり公開したりしないでください。これらを削除すると、該当するオリジンの localStorage が消去されます(ウェブサイトからログアウトされる場合があります)。
形式の詳細
概要LOCALSTORAGE ファイルを開くプログラム
ItemTable を参照してキー・バリューのペアを確認できます。 ItemTable を参照してキー・バリューのペアを確認できます。 ItemTable を参照してキー・バリューのペアを確認できます。 技術的詳細
詳細仕様| コンテナ (WebKit/Safari/旧 Chrome) | SQLite 3 データベースファイル |
| SQLite マジックバイト | オフセット 0 に `SQLite format 3` + NUL (16進数 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00) |
| 内部 SQLite テーブル | `ItemTable (key TEXT, value TEXT)` - localStorage のキー・バリューのペアごとに 1行、1オリジンごとに 1つのデータベースファイル |
| オリジンごとの隔離 | 1オリジン(スキーム + ホスト + ポート)につき 1ファイル。ブラウザの同一生成元ポリシー(Same-Origin Policy)により、クロスオリジンアクセスはブロックされます |
| ストレージ制限 | 1オリジンあたり 5 MB (HTML5 推奨)。デスクトップブラウザでは実際には 5〜10 MB が適用されます |
| データの永続性 | データはブラウザの終了や OS の再起動後も保持されます。サイトのスクリプトによる明示的な操作、またはブラウザ設定でのユーザー操作によってのみ消去されます |
| JavaScript API | 読み書きは `localStorage.getItem()` / `localStorage.setItem()` を介してのみ行われます。ウェブページからファイルレベルで直接アクセスすることはできません |
| 暗号化 | なし。保存されたすべての値は SQLite データベースまたは LevelDB エントリ内にプレーンテキストで保持されます |
| Chrome バックエンドの移行 | Chrome は Chrome 28 (2013年) 頃に localStorage を SQLite (.localstorage ファイル) から LevelDB に切り替えました。モダンなインストール環境では LevelDB が使用されます |
| Chrome ファイルの場所 (Windows) | `%LOCALAPPDATA%\Google\Chrome\User Data\Default\Local Storage\leveldb\` |
| Safari ファイルの場所 (macOS) | `~/Library/Safari/LocalStorage/` - 1オリジンにつき 1つの SQLite `.localstorage` ファイル |
| Electron アプリ | 多くの Electron ベースのデスクトップアプリは、現在もアプリごとのユーザーデータディレクトリに SQLite の `.localstorage` ファイルを書き込みます |
| リリース日 | 2008 (WebKit/Safari 4 beta; Chrome 1.0) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | html.spec.whatwg.org |
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。LOCALSTORAGE ファイルについて最初の質問をしてみましょう。
よくある質問
.localstorage ファイルとは何ですか?削除しても大丈夫ですか?
.localstorage ファイルを開くにはどうすればよいですか?
ItemTable というテーブルを持つ標準的な SQLite データベースです。