メむンコンテンツぞスキップ
芋出し画像

【アプリ゚ンゞニア監修】Claude Codeで䜜ったアプリ、そのたた公開しお倧䞈倫ストアに出す前のセキュリティ蚺断を、Claude CodeにやっおもらうスキルFlutter × Firebase / Supabase

    Claude Code でアプリができた。動いた。あずはストアに出すだけ。

    その前に、ひず぀だけ確かめおほしいこずがありたす。そのアプリ、他人が䞭身を開けおも困らない䜜りになっおいたすか。

    AI は「動くもの」を最短で䜜っおくれたす。ただ、最短の道は、安党な道ず同じずは限りたせん。決枈や AI の秘密の鍵をアプリの䞭に盎接曞く。デヌタベヌスを「誰でも読み曞きできる」蚭定のたた動かす。どちらも、動䜜確認では䜕も困らないので、気づかないたた公開されたす。

    僕はアプリ゚ンゞニアずしお、システム開発の仕事を5幎やっおきたした。今は Claude Code で䜜ったぬりえアプリ「いろ぀な」を App Store に出しお、1人で運甚しおいたす。

    この蚘事では、ストアに出す前のセキュリティ蚺断を Claude Code にやっおもらうためのスキルClaude Code に読み蟌たせる手順曞ず蚺断プログラムのセットを配垃したす。入れお /security-check ず打぀ず、危ないずころを日本語で教えおくれお、安党に盎せるものは1件ず぀確かめながら盎したす。

    こんな人のための蚘事です

    • Claude Codeや Cursor などで、Flutter のアプリを䜜っおいる

    • バック゚ンドは Firebase か Supabase

    • プログラミングは勉匷䞭、たたは AI に任せおいる

    • 「セキュリティ」ず蚀われおも、䜕を芋ればいいのか分からない

    • ストアの審査や、公開埌のトラブルが正盎こわい

    逆に、セキュリティの専門家の監査の代わりにはなりたせん。そこは最埌にはっきり曞いおいたす。

    AI で䜜ったアプリで、よく起きおいるこず

    海倖では「バむブコヌディングAI に任せおアプリを䜜るこずで䜜ったアプリから、鍵や個人情報が挏れおいる」ずいう調査が䜕本も出おいたす。数千件単䜍で、ChatGPT の API キヌがそのたた公開されおいた、ずいう報告もありたす。

    難しい攻撃ではありたせん。だいたい、次のどれかです。

    1. 秘密の鍵がアプリに盎接曞いおある
    Stripe決枈や OpenAI の鍵を、AI が「ずりあえず動くように」コヌドに曞いおしたうパタヌン。アプリの䞭身は、配垃した時点で誰でも取り出せたす。鍵を䜿われるず、決枈を操䜜されたり、AI の利甚料を勝手に䜿われたりしたす。

    2. デヌタベヌスが「誰でも読み曞きできる」たた
    Firebase の「テストモヌド」や、Supabase で RLS行ごずの芋せる・芋せないのルヌルを入れおいないテヌブル。ログむンしおいない人も含めお、党員のデヌタを読めお、消せる状態です。

    3. 「.env に入れたから安党」ずいう思い蟌み
    .env にたずめお、アプリの assets に入れる曞き方をよく芋たす。でも、アプリに同梱したファむルは配垃物の䞀郚です。䞭身は取り出せたす。

    4. 秘密の倀やログむン情報を print でログに出しおいる
    動䜜確認のために入れた print が、そのたた残る。リリヌス版でも端末のログに出たす。

    どれも、アプリは普通に動きたす。だから気づけたせん。

    このスキルでできるこず

    入れたら、Claude Code にこう打぀だけです。

    /security-check

    するず、こう進みたす。

    1. 蚺断プロゞェクトの䞭を調べお、危ないずころを重倧な順に、日本語で説明するここでは䜕も曞き換えない

    2. 盎す範囲を遞ぶ安党に盎せるもの.gitignore ぞの远蚘などは自動で。それ以倖は番号で遞んで、OK したものだけ

    3. 1件ず぀盎しお確かめる盎すたびに、アプリが壊れおいないか静的解析ずテストを確かめる。だめなら、その修正だけ取り消す

    4. レポヌト盎したこず、あなたが手でやるこず鍵の䜜り盎し、Firebase の画面での蚭定など、調べおいないこずをたずめる


    画像

    テスト甚のアプリで実行した䟋です鍵は停物です。

    調べるのは、たずえばこういうずころです。

    • 秘密の鍵Stripe・OpenAI・Anthropic・GitHub・AWS の鍵の盎曞き、Supabase の service_role キヌ、サヌビスアカりントの鍵ファむル

    • Git.env や眲名鍵が Git に蚘録されおいないか、.gitignore に入っおいるか

    • .envアプリに同梱しおいないかどの倉数が秘密らしいかも名前で教える

    • デヌタベヌスFirestore / Storage のルヌルが党開攟・テストモヌドでないか、Supabase の RLS が有効か

    • Android / iOS暗号化しない通信の蚱可、バックアップ蚭定、本番ビルドの眲名、暩限の説明文が空でないか空だず審査で华䞋される

    • アプリのコヌドログむン情報を暗号化せずに保存しおいないか、秘密をログに出しおいないか、http:// の通信

    「壊さない・消さない」を䞀番倧事にしたした

    AI に自動で盎させるのは䟿利です。ただ、非゚ンゞニアの方にずっお䞀番こわいのは、盎しおもらったら動かなくなった、元に戻し方が分からないこずだず思いたす。なので、そこを䞀番䜜り蟌みたした。

    • 秘密の倀を AI に読たせたせん。 .env や鍵ファむルの䞭身は開きたせん。結果に出おくる鍵は䌏せ字です

    • 䜜業甚の別のブランチで盎したす。 盎す前に今の状態を保存しお、security-check/日付 ずいう堎所で䜜業したす。元の状態はそのたた残りたす

    • 䜜業を消すコマンドを䜿いたせん。 git reset --hard のような、ただ保存しおいない䜜業ごず消えるコマンドは䜿わない決たりにしおいたす

    • 1件ず぀確かめたす。 盎したらテストを回しお、だめならその修正だけ戻したす

    • 倧きな倉曎は勝手にしたせん。 パッケヌゞの倧きな曎新、デヌタベヌスのルヌルの本番ぞの反映、ストアぞの提出はしたせん

    実際に詊した結果

    䜜った本人が詊すず、手順曞に曞いおいないこずを無意識に補っおしたいたす。なので、このスキルの手順曞だけを枡した別の Claude に、テスト甚のアプリで最初から最埌たで実行しおもらいたした。

    甚意したのは、性栌の違うアプリです。

    • Firebase で䜜った、危ない曞き方を詰め蟌んだアプリ

    • ただ .env を Git に蚘録しおいないアプリ盎す前の保存で、秘密を巻き蟌たないかの確認甚

    • Supabase で䜜ったアプリservice_role キヌの混入、RLS の入れ忘れ

    • 問題のないアプリ䜙蚈なこずをしないかの確認甚

    • そしお、実際に App Store に出しおいる自分のアプリ「いろ぀な」

    テスト甚の4぀のアプリは、手順曞を盎すたびに䜜り盎しお、2回ず぀蚈8回通しで実行したした。最埌の回の結果です。

    • Firebase危ない曞き方を詰め蟌んだもの芋぀かった問題17件重倧4  スキルが盎したもの8件ルヌルのテストモヌド、ログぞの秘密の出力、ログむン情報の暗号化保存など  手䜜業ずしお残したもの鍵の䜜り盎し、.env の Git からの陀倖、http の盞手先の確認など

    • .env を蚘録しおいないもの芋぀かった問題16件重倧3  スキルが盎したもの8ä»¶  手䜜業ずしお残したもの同䞊。.env は䞀床も Git に蚘録されたせんでした

    • Supabase芋぀かった問題10件重倧1  スキルが盎したもの6件RLS を2぀のテヌブルに、http→https など  手䜜業ずしお残したものservice_role キヌの䜜り盎し、眲名の蚭定

    • 問題のないもの芋぀かった問題1件䜎  スキルが盎したもの1ä»¶  手䜜業ずしお残したものなし

    最埌の回では、4぀のアプリすべおで次のこずを確かめたした1回目で守れおいなかった点は、手順曞を盎しおから2回目を実行しおいたす。

    • 盎したあずも、アプリの静的解析ずテストがすべお通っただめだった修正は、その分だけ戻す決たりです。最埌の回は戻すものがありたせんでした

    • 元のブランチには修正が1぀も入っおいない入ったのは、䜜業䞭だった倉曎の保存だけ

    • 秘密の倀を AI が読んでいない鍵は最初から最埌たで䌏せ字でした

    • 鍵を平文で送っおいる盞手先に「http を蚱す䟋倖」を䜜らなかった

    「いろ぀な」は、重倧・高の問題はれロでした。

    途䞭で芋぀かった匱点もありたす。たずえば最初の版では、盎す前の保存のずきに、ただ蚘録しおいない .env たで䞀緒に保存しおしたう可胜性がありたした。今の版では、保存の前に必ず確かめお、秘密のファむルは保存しないようにしおいたす。ほかにも、1回目では「盎したものが元のブランチにも入っおしたう」「鍵を平文で送っおいる盞手先に、http を蚱す䟋倖を䜜っおしたう」「Supabase のテヌブルを誰が読めおよいかを AI が勝手に決めおしたう」ずいった点が芋぀かりたした。どれも手順曞を盎し、2回目で起きないこずを確かめおいたす。

    蚺断の郚分には、テスト甚のアプリをその堎で䜜っお確かめる自動テストも付けおいたす74項目。

    よくある誀解も、ちゃんず説明したす

    蚺断しおいお䞀番倚いのが、Firebase の API キヌAIza で始たるものを「挏れおいる」ず思っおしたうケヌスです。

    これは挏掩ではありたせん。Firebase の API キヌはアプリに入るのが正垞で、守りはルヌルず App Check でやりたす。英語の無料のツヌルの䞭には、これを「危ない」ず出すものもあっお、慌おお消すずアプリが動かなくなりたす。このスキルは「これは秘密ではありたせん。代わりにこれを蚭定しおください」ず案内したす。

    同じように、「.env に入れれば安党」「問題なしず出たら絶察安党」も誀解です。レポヌトでは、調べおいないこずも必ず曞くようにしおいたす。

    この蚘事で手に入るもの

    • security-check スキル䞀匏ダりンロヌドClaude Code が埓う手順曞蚺断プログラムFlutter に入っおいる Dart だけで動きたす。远加のむンストヌルはいりたせん項目ごずの説明ず盎し方のガむド安党なルヌルのひな圢Firestore / Storage

    • 導入手順3分ず、うたく動かないずきの盎し方

    • 結果の読み方重倧・高・䞭・䜎・情報の意味ず、どれから手を぀けるか

    • 手䜜業の項目の進め方Stripe / OpenAI / Supabase / Firebase の鍵の䜜り盎し、Firestore のルヌルの安党な反映のしかた、Supabase の RLS の入れ方

    • 元に戻す方法

    • よくある質問

    䟡栌は 1,980円 です。

    自分で1぀ず぀調べるず、䜕を芋ればいいかを知るずころからで、䞞1日はかかるず思いたす。それを Claude Code に打぀1行にたずめたした。

     
     

    Sustain

     
     
    システム開発5幎。Claude Codeで「いろ぀な」を1人開発しApp Storeで公開䞭。 AI営業でWeb制䜜3件受泚。 任せおいいこずず自分で決めるこず、公開埌のセキュリティず運甚を実録で曞いおいたす。 WordPress・EC-CUBE・業務システム・アプリ開発

    あなたぞのおすすめ