カテゴリ
Next.js × Supabase アプリ層セキュリティ(脆弱性の検出・多層防御・RLS/認可の検証)実装ガイド
アプリ層セキュリティは『自動化できる水平統制』と『設計でしか守れない垂直リスク』に分かれます。前者——セキュリティヘッダー/CSP、サーバーレスで正しく効くレート制限、CSRF/Origin検証、型付きenv境界、SQLi/SSRF/XSS等の注入——はツールで網羅的に検出・強化できます。後者——認可/IDOR・Supabase RLSの設計の正しさ・テナント分離・業務ロジック——は検出・警告はできても、修正は人間の設計判断に委ねられます。本クラスタは、無料OSS『Aegis』のscan(SAST)・RLS検証・probe(DAST)・CI(SARIF)を軸に、競合が見落とすSupabase RLSの設定ミス検出を中核に据え、何が自動で守れて、何が監査・設計を要するのかを正直に切り分けます。経済産業大臣賞のB2B SaaS、本番二重課金0件の決済基盤の知見を根拠に、速く・安く・安全に作るための判断材料を提供します。
全 17 記事
基礎ガイド
基礎ガイド(まずはここから)
Next.js × Supabase アプリケーションセキュリティ完全ガイド — 脆弱性の検出と多層防御で、認可・RLSを守る
AI量産のNext.js × Supabaseアプリのセキュリティ全体像。自動化できる水平統制(CSP・レート制限・CSRF・Zod検証)、静的解析で検出する注入(SQLi/SSRF/XSS)、設計でしか塞げない垂直リスク(認可/IDOR・RLS・テナント分離)に分け、検出の3層と多層防御で守る方法を体系化します。
関連する実践記事
- Next.jsセキュリティTypeScriptアーキテクチャ設計
Next.js Server ActionsのCSRF / Origin対策 — 何が標準で守られ、何を足すべきか
Next.js App RouterのServer ActionsはPOST限定+Origin/Host一致チェック+暗号化されたアクションIDで一定のCSRF耐性を持つ。しかし十分ではない。Origin検証・SameSite Cookie・Route Handlerの保護を、何が自動で守られ何を足すか、公式が示す範囲に忠実に正直解説します。
23分 - Next.jsTypeScriptセキュリティアーキテクチャ設計
Next.jsの環境変数と秘密漏洩対策 — NEXT_PUBLIC_ の罠と、型付き env 境界
NEXT_PUBLIC_接頭辞の環境変数はビルド時にクライアントバンドルへ焼き込まれ公開される。秘密キーの混入事故を防ぐ server-only 境界、Zodによる型付きenv検証、秘密スキャンの実装を、Next.jsの脆弱→修正の実コードで体系的に解説します。
26分 - Next.jsセキュリティTypeScript
Next.jsのオープンリダイレクト対策 — 認証 callbackUrl / redirect() を検証する
redirect() や callbackUrl にユーザー入力をそのまま渡すと、信頼できる自社ドメインを起点に攻撃者サイトへ誘導され、フィッシングや認証直後のトークン窃取に繋がります。相対パス強制・ホストallowlist・new URL での検証で安全側に倒す方法を、Next.jsの認証フローの脆弱→修正コードと、//evilやバックスラッシュ等のバイパス対策まで解説します。
20分 - Next.jsセキュリティアーキテクチャ設計TypeScript
Next.jsのセキュリティヘッダーとCSP(nonce) — middleware 1枚で多層防御を自動化する
CSP・HSTS・X-Content-Type-Options・Referrer-Policy・frame-ancestors等のセキュリティヘッダーを、Next.js App Routerのmiddleware 1枚で一括導入する方法。nonce方式CSPがなぜ手書きで壊れ、どう自動化するかを実コードで解説し、CSPがXSS対策の補完であって出力設計の代わりではない限界も正直に示します。
23分 - Next.jsアーキテクチャ設計セキュリティTypeScript
Next.jsで『正しく効く』レート制限 — サーバーレスでインメモリが壊れる理由と、分散ストア設計
Vercel/Lambdaはインスタンスが使い捨て&並行で動くため、プロセス内メモリのレート制限は素通りします。Upstash Redis等の分散ストアでアトミックなスライディングウィンドウを実装する設計を、Next.jsの実コード(middleware/route handler)で解説します。
26分 - Next.jsセキュリティTypeScriptアーキテクチャ設計
Next.jsのSSRF対策 — Server Actions / Route Handlers の fetch を安全にする(taint解析で検出)
ユーザー入力URLをサーバーがfetchすると、SSRFでクラウドメタデータ(169.254.169.254)や内部サービスに到達されうる。スキーム/ホストのallowlist・プライベートIP遮断・リダイレクト追従禁止と、汚染入力→fetchシンクのtaint検出を、Next.js App Routerの脆弱→修正コードで解説します。
23分 - セキュリティSupabaseNext.jsアーキテクチャ設計B2B SaaS
セキュリティ監査は何を見るのか — 自動化で足りる範囲と、監査が要る範囲(Next.js × Supabase)
Next.js × Supabase アプリのセキュリティ監査で実際に何を見るのかを正直に解説。SAST/DAST/SCA など自動ツールが塞ぐ『水平統制』と、監査でしか塞げない『垂直リスク』(認可/IDOR・RLS設計・テナント分離・業務ロジック)の境界線、監査が必要になるタイミング、進め方の3段階と費用感(¥98,000〜)までをまとめます。
32分 - Next.jsセキュリティアーキテクチャ設計TypeScript
セキュリティをCIで止める — GitHub Actions・SARIF・『高確度のみブロック』の設計
セキュリティ検査をCIに組み込み、高確度の検出だけでビルドを止める設計。GitHub ActionsでのSAST実行、SARIFによるコードスキャニング連携、誤検知でCIを壊さない(静的×動的の相関で確証のみブロック)運用を、実際のYAMLとコマンドで解説します。
23分 - Next.jsReactセキュリティTypeScript
Next.js / React のXSS・DOM-XSS対策 — dangerouslySetInnerHTML の穴と、安全なサニタイズ・CSP
Reactは標準でJSXをエスケープするが、dangerouslySetInnerHTML・href=javascript:・ref経由のDOM操作・DOMシンクで抜ける。XSS/DOM-XSSの発生箇所、DOMPurifyによる出力時サニタイズ、CSP(nonce)/Trusted Typesの多層防御を、脆弱→修正の実コードで解説します。
19分 - SupabaseRLSNext.jsセキュリティTypeScript
anonキーとservice_roleキーの正しい扱い — 公開してよい鍵、晒すと即死の鍵、そしてRLSバイパスの境界
Supabaseのanonキーは公開前提だがRLSが効いていることが大前提。service_roleキーはBYPASSRLS権限でRLSを完全に無視し、漏洩すれば全データが露出します。鍵の置き場所・サーバー境界・所有権チェックの設計を、Next.js App Routerの実コードで解説します。
24分 - SupabaseRLSB2B SaaSセキュリティアーキテクチャ設計
テナント越え漏洩を検証する — Supabase RLSの分離を『証明』する方法(設計だけで終わらせない)
マルチテナントSaaSで他テナントのデータが見える越境漏洩を、RLSを設計するだけでなく『分離が壊れていないこと』を検証で証明する方法を解説。pgTAP的な回帰テスト、所有権チェック、安全な動的プローブ(DAST)とSAST相関で確信度を上げる実践を、脆弱→検証の実コードで示します。
26分 - SupabasePostgreSQLセキュリティTypeScript
Supabase / PostgreSQL のSQLインジェクション対策 — rpc・生SQL・関数内の動的SQLの罠
SupabaseはPostgRESTとパラメータ化クエリで素のSQLインジェクションが起きにくい。だが関数内の動的SQL(EXECUTEと文字列連結)・format()の%s誤用・生SQL・検索フィルタの組み立ては注入経路になる。EXECUTE USINGのパラメータ化、format()の%I/%L、quote_ident/literal、許可リスト検証で安全にする方法を、脆弱→修正の実SQL/TSで解説します。
20分 - SupabaseRLSPostgreSQLセキュリティアーキテクチャ設計
Supabase RLSの設定ミスを検出する — 未有効化・WITH CHECK欠落・USING(true)・anon過剰付与をmigrationsから洗い出す
Supabase RLSは『有効化したつもり』で穴が開く。RLS未有効化・WITH CHECK欠落・USING(true)・anon過剰付与・search_path未固定のSECURITY DEFINERという危険パターンを、supabase/migrations/**.sqlの静的検証で洗い出して塞ぐ実践ガイドです。
27分 - SupabaseRLSPostgreSQLセキュリティ
Supabase RLSの WITH CHECK 欠落で起きる『書き込みバイパス』 — USING との違いと、INSERT/UPDATE を正しく守る
SupabaseのRLSで混同しやすいUSING(読み取りフィルタ)とWITH CHECK(書き込みフィルタ)の違いを整理し、WITH CHECKを欠いた書き込みポリシーが認証済みユーザーに他人のuser_idや他テナントのidを持つ行を作らせる『書き込みバイパス』を、INSERT/UPDATE/ALLの脆弱→修正SQLで解説します。
22分 - SupabasePostgreSQLRLSセキュリティ
Supabaseの SECURITY DEFINER 関数の落とし穴 — search_path 未固定が RLS 迂回・権限昇格を生む
SECURITY DEFINER関数は定義者権限で動くため、search_pathを固定しないと攻撃者が一時スキーマやpublicに同名オブジェクトを差し込み、RLSを迂回して権限昇格できます。set search_path = '' とスキーマ修飾、GRANT最小化という安全な書き方と、migrations/pg_procでの検出方法を実SQLで解説します。
21分 - SupabaseRLSNext.jsセキュリティTypeScript
Supabaseで「他人のデータが見える」IDOR脆弱性はこう生まれる — AI生成のNext.jsコードに潜む認可欠陥を発見・修正する実践ガイド
AIで量産したNext.js × SupabaseアプリがOWASP API1:2023 BOLA(IDOR)で他人のデータを露出させる仕組みを、CVE-2025-48757とservice_roleキーによるRLSバイパスを軸に解説。WAFやセキュリティヘッダーでは防げない理由と、taint解析・RLS検証・実行時確認の3層で体系的に発見・修正する方法を、脆弱→修正の実コードで示します。
20分