v0
v0で作ったプロジェクトを、本番に耐えるプロダクトに
v0は、ReactとNext.jsのコードを短い時間で生成します。プロジェクトは画面から作り始め、データやサインインは後から加えることがよくあります。本番で問題が起きやすいのは、そうした部品どうしがつながる部分です。
よくある問題
何で作ったかにかかわらず、レビューが追いつかない速さで育ったアプリによく見られる問題です。ほとんどは、今の環境のまま直せます。
-
呼び出し元を確認しないサーバーのコード
Next.jsのServer ActionやRoute Handlerは、自分のページからだけでなく、誰からでも呼び出せます。それぞれで、呼び出し元が誰で、何をしてよいかを確認する必要があります。
-
ブラウザに公開される変数
NEXT_PUBLIC_で始まる変数の値は、訪問者全員がダウンロードするJavaScriptに書き込まれます。秘密のキーにこの接頭辞をつけてはいけません。
-
共有のキャッシュに入った個人のデータ
ある利用者のデータを表示するページが、キャッシュされて次の利用者に配信されてはいけません。キャッシュの設定は、アクセスルールと同じように見直す必要があります。
-
プレビューのデプロイ
プレビューのリンクは、共有しやすく忘れられやすいものです。本番のデータやキーにアクセスできるなら、本番と同じ保護が必要です。
-
部品どうしのつなぎ目
別々の時期に作られた画面、データ層、サインインは、誰に何を許すかについて食い違うことがあります。監査では、重要な流れを最初から最後までたどって確認します。
v0アプリで監査が確認すること
コード・プロダクト監査では、外から見える部分だけでなくコードそのものを読み、すべての指摘を事業への影響で順位づけします。v0アプリの場合は、次の点を確認します。
- すべてのServer ActionとRoute Handler。誰が呼び出せるか、何を確認しているか。
- 環境変数と、そのうちブラウザに渡るもの。
- 特定の利用者に属するページやデータのキャッシュ。
- 認証、セッション、ロール。
- プレビュー環境と本番環境、それぞれがアクセスできるもの。
- 重要なページのパフォーマンスとCore Web Vitals。
- プロダクトと事業の目標。お話をうかがい、すべての指摘を事業にとっての意味で順位づけします。
公開中のアプリを1日で確認する、固定価格のローンチチェックもご用意しています。認証、RLS(行レベルセキュリティ)とデータアクセス、シークレットを確認し、リスクの大きいものから5件を30分のお打ち合わせでご説明します。 ローンチチェックについて
今の環境のまま、本番で通用する状態へ
基本のご提案は、今の技術スタックのまま堅牢にすることです。技術スタックの変更は、監査でその費用に見合うとわかった場合にだけご提案します。
v0アプリを、まず無料チェックで
無料チェックは、配信されているJavaScriptに含まれるキー、ヘッダー、HTTPS、バージョンなど、アプリがすでに外に見せているものをスキャンし、2営業日以内にAaronが結果を確認します。メールでのご確認と、アプリの所有者であることの確認が済んでから実行します。