本文へ移動

ログインできても安心できない|AIアプリで他人のデータに触れないかを確かめる方法

ログインの仕組みがあっても、他人のデータを見たり書き換えたりできる状態は起こります。アカウントを2つ作って確かめる手順と、Lovable の CVE-2025-48757 から見える「データの保護は作った側の責任」という論点を説明します。

公開日 更新日

ログインできることと、他人のデータに触れないことは別です。確かめる方法は、アカウントを2つ作り、片方でログインしたまま、もう片方のデータを URL や ID で指定してみることです。見える、変えられる場合は、公開前に権限の制御(認可)を足してください。

ログインと、権限の制御は別のもの

ログインは「あなたは誰か」を確かめる仕組みです。それに対して、権限の制御(認可)は「あなたは、このデータに触れてよいか」を決める仕組みです。

AI にアプリを作らせると、ログイン画面はすぐできます。ログインした人にはデータが表示され、画面上は問題なく動きます。ところが、画面に出ないようにしていることと、データに触れられないようにしていることは別です。画面から他人のデータへのリンクを消しても、URL や ID を直接指定すれば開ける、という状態が起こります。

事例: Lovable 製アプリの RLS 不備(CVE-2025-48757)

2025年3月に、Lovable で生成されたサイトで、データベースのアクセス制御が不十分な例が見つかりました(発見は 3月20日)。Supabase の RLS(行単位のアクセス制御)が足りず、認証なしの第三者がデータベースを読み書きできた、と報告されています。発見者の説明では、調べた 1,645 件のプロジェクトのうち 170 件が該当しました。その後、CVE-2025-48757 として、2025年5月に公開されました(発見者の声明(新しいタブで開きます)、SentinelOne の脆弱性データベース(新しいタブで開きます))。

ここで大事なことがあります。この CVE には、**供給元の Lovable が異議を出している(disputed)**という注記が付いています。CVE の記述には、Lovable のプラットフォームを使う各顧客が、自分のアプリのデータを保護する責任を負う、という趣旨の説明があります。

私たちは、この事例を「Lovable は危険だ」という話としては読みません。どのツールで作っても、同じ論点が残るからです。データの保護は、最終的に、アプリを作って公開した側の責任になるということです。ツールが基本的な設定を助けてくれることはあっても、公開するアプリで他人のデータが守られているかを確かめる役目は、公開する人にあります。

私たちの考え方: 権限は「画面」ではなく「データ」の側で守る

確かめるべきことは、ログインできるかではなく、ログインした人が、自分のデータだけに触れられるかです。そして、それを守る場所は、画面ではなく、データを返すサーバーやデータベースの側です。

画面で隠すだけの対策は、直接 URL や API を呼ばれると破られます。サーバーやデータベースの側で「この人は、このデータに触れてよいか」を毎回確かめる。これが判断基準です。一般的には、データベース側で行単位のアクセス制御(RLS など)を設定する構成や、サーバー側で持ち主を確かめる構成があります。どちらを使うかは、アプリの作りで決まります。

確かめ方: アカウントを2つ作る

専門知識がなくてもできます。次の順で試してください。

  1. アカウントを2つ作る。 A と B とします。
  2. A でデータを作る。 注文、投稿、プロフィール、ファイルなど、アプリが扱うデータを作ります。そのデータの URL か ID を控えます。
  3. B でログインし直し、A のデータの URL を開く。 見えてしまったら、権限の制御がありません。
  4. ID を書き換えてみる。 URL の中の数字や文字列(/orders/123 の 123 など)を別の値に変えて開きます。他人のデータが見えたら同じです。
  5. 見るだけでなく、変更・削除もできるか試す。 B から A のデータを更新・削除できないかを確かめます。見えないだけで、変えられる状態もあります。
  6. ログアウトした状態でも試す。 ログインしていない人に、データが返ってこないかを確かめます。
  7. 管理者向けの画面を、一般アカウントで開く。 管理画面の URL を直接開き、一般アカウントで入れないかを確かめます。

どれか1つでも通ってしまえば、公開前に直す対象です。試した結果は、メモに残しておくと、直した後の再確認に使えます。

私たちの経験

私たちは、ログインはできるのに、他人のデータを見たり書き換えたりできる状態(認可がない状態)を見たことがあります。ログイン画面があると、作った人も使う人も「守られている」と感じやすい。そこに落とし穴があると感じています。

だからこそ、私たちは、権限は「ログインがあるか」ではなく、別のアカウントで実際に試して確かめることを勧めます。

公開前に確かめる4点(秘密情報・権限・復旧・保守)の全体像は、AIで作ったアプリを本番化するにはにまとめています。この記事は、その2点目を詳しく説明したものです。

wizgeek にできること

確かめて不安が残ったとき、または確かめ方に自信がないときは、ご相談ください。試作の構成と機能を把握し、認証・データベース・インフラ・セキュリティ・監視のうち何が足りないかを整理して、構成案をお渡しします(本番化の診断:5万円〜、税別)。構成案をもとに、お客様側で実装していただくこともできます。本番化の作業は別途お見積りします。

よくある質問

ログイン機能があれば、他人のデータは守られますか?
守られるとは限りません。ログインは「誰か」を確かめる仕組みで、「その人が何に触れてよいか」を決める仕組み(認可)とは別です。ログインできる人が、他人のデータの URL や ID を指定して見られてしまう状態が起こります。
自分で確かめるには、どうすればいいですか?
アカウントを2つ作ります。片方(A)でデータを作り、もう片方(B)でログインした状態で、A のデータの URL や ID を指定して開けるか、変更・削除できるかを試します。ログインしていない状態でも同じことを試します。
AIツールで作ったアプリは、権限の設定が弱いのですか?
一概には言えません。この記事で取り上げる Lovable の CVE も、供給元は、各利用者が自分のアプリのデータを保護する責任を負うとして異議を出しています。大事なのは、ツールが何であれ、公開前に自分のアプリで確かめることです。

関連する実績

関連する課題ページ

バイブコーディング・AIで作ったアプリを、本番で使えるようにしたい

最近は、生成AIにコードを書かせて(バイブコーディング)画面や試作(プロトタイプ)を作ってから相談してくださる方が増えています。完成イメージを最初から共有できるので、開発は速く進みます。ただ、多くは画面だけの試作です。そこに認証、データベース、インフラ、セキュリティ、監視、バックアップ、テストを整え、本番運用に耐える形にして公開・運用します。

課題別ページを見る

AIで作った試作の話から、始めませんか。

画面だけの試作でも、動いているアプリでも構いません。まず診断で、本番に必要なものを洗い出します。