こんにちは、やまりゅうです。
今回は「AIで作ったWebアプリを公開する前に確認しておきたいこと」についての話をします。
AIを使ってアプリを作ると、アイデアを動く形にするまでの時間を短くできる場面があります。画面が表示され、登録や検索も動くようになると、公開まであと少しと感じる方も多いのではないでしょうか。
ただ、開発PMやクラウドエンジニア、CISOとしてアプリに関わる立場からは、機能の動作と、データや権限の扱いを分けて考えることが大切だと考えています。今回は、個人開発のWebアプリでも確認しておきたい観点を整理してみます。
ログインと権限を分けて考える
ログイン機能があると、アプリ全体が守られているように見えることがあります。しかし、本人だと確認できることと、その人がどの情報を扱えるかは別の話です。
例えば、利用者Aが自分のプロフィールを編集できるアプリを考えます。Aが自分の情報を更新できるだけでなく、利用者Bの情報は更新できないことも確認したいところです。管理者用のボタンを画面から隠していても、サーバー側の処理で権限を確認していなければ、それだけで操作を防げるとは限りません。[1]
私は、機能を見るときに「できること」と一緒に「できてはいけないこと」を並べると、確認する内容が具体的になると考えています。自分で管理する検証環境にテスト用アカウントを用意し、未ログイン、一般利用者、管理者といった立場ごとの操作を整理すると見落としを減らしやすくなります。
公開前に見ておきたい観点
権限以外にも、次のような点を確認しておくとよいと考えています。
・秘密情報:外部サービスの秘密APIキーやデータベースの接続情報が、公開するコードやブラウザーに配信される内容に含まれていないか。[2]
・入力処理:入力値の形式や長さをサーバー側でも確認しているか。また、データベースへの問い合わせや画面への表示には、それぞれ適切な安全対策があるか。入力チェックだけで、すべての問題に対応できるわけではありません。[3]
・公開範囲:ファイル、データベース、管理用の機能が、意図した相手だけに公開されているか。
・依存ライブラリ:既知の脆弱性について確認し、影響のある箇所を把握しているか。更新した場合に、元の機能が動くことも確認できるか。[4]
例えば、キーを環境変数へ移したとしても、その値がブラウザー向けのコードに含まれる構成なら、秘密として保持できません。「どこに書いたか」だけでなく、「最終的に誰から見えるか」まで考えることが大切です。
クラウドサービスを使っている場合も、アプリのコードだけで判断できない部分があります。データベースやファイルのアクセス設定など、実際の構成と合わせて見る必要があると考えています。
確認したことと、まだ分からないことを残す
チェック項目を作っても、すべてに問題なしと書けるとは限りません。コードを読んで確認できたこと、検証環境で操作したこと、本番の設定が分からず判断できなかったことは、分けて残したいところです。
例えば、「別の利用者のデータを参照できなかった」という結果も、どの機能を、どのアカウントで、どの版のアプリに対して確認したかが分からなければ、後から見直すのが難しくなります。
確認できなかった項目があること自体よりも、未確認のまま確認済みとして扱ってしまうことを避けたいと考えています。外部へ相談する場合にも、確認した範囲が残っていると、追加で何を見るかを話しやすくなります。
まとめ
AIで作ったWebアプリを公開するときも、まずは「誰が、どの情報に、どんな操作をできるか」を整理するところから始めるとよいのではないかと思います。
ログインと権限、秘密情報、入力処理、公開範囲、依存ライブラリ。これらは公開前に考えたい観点の一部です。チェック項目を埋めるだけで安全を保証できるものではありませんが、気になる部分と未確認の部分を具体的にするためには役立ちます。
個人開発では、機能を作る作業と確認する作業を一人で担うこともあります。すべてを一度に片付けようとするより、扱うデータと公開範囲を整理し、影響の大きい箇所から確認していくことが現実的だと考えています。
ココナラでは、合意した範囲のコードと設定を確認し、根拠・影響・修正案を報告書にまとめる相談を受け付けています。まだ作りたいものを整理している段階では、構想や機能の優先順位についてもご相談いただけます。
Webアプリのセキュリティ診断
Webアプリの構想・要件整理
参考文献
[1] OWASP, Authorization Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html
[2] OWASP, Secrets Management Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html
[3] OWASP, Input Validation Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html
[4] OWASP, Vulnerable Dependency Management Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/Vulnerable_Dependency_Management_Cheat_Sheet.html
参照日:2026年10月12日