本文へ移動

IndexedDB

IndexedDB とは、ウェブブラウザに組み込まれたデータベースで、サイトが訪問者自身のデバイスに大量の構造化データを保存できるようにするものです。非同期で動き、索引付きでオブジェクトを保持し、サイトごとに別々にデータを保管します。

2026年11月8日 更新

  1. 読めるのは、あなたのデバイスだけ。

    会話を読めるのは、あなたのデバイスと、同期していればほかのデバイスだけ。それ以外のどこでも読めません。

  2. 私たちには読めない。

    メッセージは記録されずに通過します。チャットが保存されるときは、必ず暗号化されています。

  3. モデルはあなたを知らない。

    届くのは質問だけ。メール、アカウント、IP アドレスは渡しません。

  4. 途中に何も残らない。

    回答は戻ってきて、暗号化されてここに保存されます。同期していても、あなたの鍵が平文で私たちに届くことはありません。

NeverNo での会話の流れ。詳細は透明性ページにあります。

しくみ

ブラウザには、データを置く場所がいくつかあります。クッキーは小さく、リクエストのたびにサーバーへ送られます。localStorage は短い文字列を保持し、同期的に動くため、多用するとページが重くなることがあります。IndexedDB は本格的な量のためのものです。JavaScript のオブジェクト、写真、音声クリップなどのバイナリデータを保存でき、素早い検索のための索引や、完了するか何も中途半端に書かないトランザクションに対応し、バックグラウンドで動くので、ページは応答性を保ちます。読み書きはブロックせず、プロミスかイベントを返すため、大きな取り込みや長い一覧に向いています。Dexie のようなライブラリは、そのプログラミングインターフェースを使いやすくします。典型的な用途は、オフラインのメールクライアント、メモのツール、地図のタイル、ゲームのセーブ、お絵描きアプリです。

保存先はサイトのオリジンに結びついているので、別のサイトは読めません。ただし、それは秘密という意味ではありません。初期状態ではデータは暗号化されておらず、デバイス上のブラウザのプロファイルにアクセスできる人や、同じサイトで動くスクリプトなら、読むことができます。容量の割り当ては、サイトが保存するものすべてで共有され、ブラウザや空きディスクによって変わります。プライベートブラウジングのウィンドウは通常、閉じるとすべて消え、サイトが書き込める量に上限を設けるブラウザもあります。サイトのデータを消去したときや、ディスクの空きが少なくなってサイトが永続的な保存を求めていなかったときにも、ブラウザが消すことがあります。

だからこそ、本格的なローカルアプリは独自の保護を加えます。Web Crypto API を使うと、ページは鍵を生成して、エクスポート不可に設定できます。つまり、ページはその鍵で暗号化と復号ができますが、どのスクリプトもそのバイト列を読めません。内容は IndexedDB に書く前に暗号化され、表示のためだけに復号されます。レコードごとに別々に封をすれば、壊れた一つの項目が残りを台無しにすることはありません。これは、紛失したノートパソコンからファイルを複製されることには効きますが、ページの中で動く悪意あるコードには効かないため、サイトの厳格なセキュリティポリシーも重要です。

NeverNo では

NeverNo で作るものはすべて、このブラウザの中だけにある、neverno という IndexedDB データベースに入っています。会話、メッセージ、フォルダ、画像、動画、音声、作成したキャラクター、記憶、プライベートな金庫の文書です。初めて使うとき、ブラウザはエクスポート不可の AES-256-GCM の鍵を作り、同じデータベースの鍵のテーブルに置いて、デバイスの外には出しません。内容の一つひとつは、ランダムな初期化ベクトルを使ってそれぞれ暗号化されるので、開くべき一つのファイルというものがありません。開発者ツールの Application タブを開くと、データベースとそのテーブルが見え、封をされた項目は読めない暗号文として現れます。

会話を並べ替えたり探したりするために、すべてを復号しなくて済むよう、いくつかの目印は読める形で残ります。ID、日付、使ったモデルです。一時チャットは、データベースにまったく書き込まれません。設定ですべてを消去するか、サイトのデータを消去すると、データベースと鍵が削除されます。Alibaba の Qwen 3.5 35B は、NeverNo で無料で、画像を読み取り、推論するかどうかを選べます。その返信はブラウザに届き、そこであなたの履歴が暗号化されて保存されます。

覚えておきたいこと

  1. ブラウザの中に、索引とトランザクションを備えた大きな構造化データを、ページを固めずに保存します。

  2. 分離はウェブサイトごとですが、暗号化は自動ではありません。保護は自分で加える必要があります。

  3. エクスポート不可の鍵があれば、アプリは内容を暗号化でき、どのスクリプトも鍵そのものを読めません。

  4. サイトのデータを消去するとデータベースが削除されるので、書き出しかバックアップを残しておきましょう。

よくある質問

IndexedDB は localStorage と同じものですか?

いいえ。localStorage は短い文字列を同期的に保持し、IndexedDB は構造化されたオブジェクトやファイルを、索引とトランザクション付きでまとめて扱います。NeverNo は履歴を IndexedDB に置き、少数のインターフェース設定だけを平文で localStorage に置きます。

IndexedDB のデータは、ほかのウェブサイトから安全ですか?

はい。サイトが読めるのは、自分のデータベースだけです。同じブラウザのプロファイルを使う別の人については話が別で、だから NeverNo は、ブラウザがエクスポートを拒む鍵で、保存する前に各項目を暗号化します。

NeverNo のデータをブラウザから取り出すにはどうすればよいですか?

履歴を読めるファイルとして書き出す、パスフレーズで封をしたバックアップを作る、またはアカウントで暗号化された同期をオンにします。どれもなしにサイトのデータを消去すると、データベースと鍵は永久に消えます。

最初の質問をしてみましょう

アカウントもカードも不要。NeverNo が対応する10言語のどれでも書けます。

チャットを開く