Next.js Security Scan について
Next.js Security Scan は、Next.js と TypeScript/JavaScript プロジェクト向けのセキュリティ監査スキルです。コードレビューやデプロイ前確認に使え、簡易・全体・対象を絞ったスキャンと各種レポート出力に対応します。
主な機能
- 01簡易・全体・対象別スキャン
- 02ハードコードされた秘密情報と危険なコードの検出
- 03認証とインジェクションの問題確認
- 04依存関係と CVE の監査
- 05Next.js 固有のリスク分析
- 06SARIF、JSON などのレポート生成
活用シーン
- 01Next.js アプリの脆弱性レビュー
- 02デプロイ前の認証と設定リスクの確認
- 03依存関係の脆弱性や秘密情報の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sugarforever/ 01coder-agent-skills --skill next.js-security-scanインストール後、Claude Code で/next.js-security-scanを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/report-template.mdreferences/auth-vulnerabilities.mdinjection-patterns.mdnextjs-specific.mdowasp-top-10.mdxss-patterns.mdscripts/dependency-audit.shpattern-scanner.pysecret-scanner.py詳細
Next.js セキュリティスキャンスキル
このスキルを使用すると、OWASP のガイドラインと業界のベストプラクティスに基づいて、Next.js および TypeScript/JavaScript プロジェクトの包括的なセキュリティスキャンを実行できます。
このスキルを使用する場面
- Next.js アプリケーションのセキュリティ監査
- セキュリティ脆弱性を対象としたコードレビュー
- デプロイ前のセキュリティチェック
- 依存関係の脆弱性評価
- ハードコードされたシークレットや認証情報の検出
スキャンの種類
1. クイックスキャン
重大な脆弱性に焦点を当てた高速スキャンです。
- ハードコードされたシークレットと API キー
- 危険な関数の使用(
dangerouslySetInnerHTML、eval) - Server Actions における認証の欠如
- 既知の脆弱な依存関係
2. フルスキャン
以下を対象とする包括的なセキュリティ評価です。
- OWASP Top 10:2025 のすべてのカテゴリ
- XSS の脆弱性パターン
- インジェクションの脆弱性(SQL、NoSQL、コマンド)
- 認証および認可の不備
- セキュリティ設定の不備
- 暗号化の不備
- Next.js 固有の脆弱性
- 依存関係の監査(CVE チェック)
- 環境変数の露出
3. 対象を絞ったスキャン
特定の脆弱性カテゴリに焦点を当てます。
--xss- クロスサイトスクリプティングのパターン--injection- SQL/NoSQL/コマンドインジェクション--auth- 認証/認可の問題--secrets- ハードコードされた認証情報--deps- 依存関係の脆弱性--nextjs- Next.js 固有の問題
スキャン手順
ステップ 1:プロジェクトの検出
- プロジェクトの種類を特定します(Next.js App Router、Pages Router、または通常の React)
- 設定ファイル(
next.config.js、package.json、.env*)を探します - コードベースの構成を把握します
ステップ 2:依存関係の監査
依存関係の監査スクリプトを実行します。
./scripts/dependency-audit.sh
または、手動で実行します。
npm audit --json
# or
yarn audit --json
ステップ 3:シークレットのスキャン
ハードコードされたシークレットをスキャンします。
python scripts/secret-scanner.py /path/to/project
重要:環境ファイルの取り扱い
- デフォルトでは、実際の
.envファイル(.env、.env.local、.env.productionなど)はスキップされます - これらのファイルには実際のシークレットが含まれているため、バージョン管理に含めないでください
- ドキュメントの品質を確認するため、分析対象となるのは
.env.exampleと.env.templateファイルのみです --include-env-filesフラグは、ユーザーから明示的に要求された場合のみ使用してください
スキャナーは次の処理を実行します。
- ソースコードをスキャンして、ハードコードされたシークレットを検出します
.env.exampleのテンプレートを分析して、以下を確認します。- 機密性の高い変数が記載されているか
- 変数に説明(コメント)があるか
- プレースホルダーの値が実際のシークレットのように見えないか
- 一般的な変数で不足しているものの提案
ステップ 4:パターン分析
コードベース内の各ファイルについて、以下のパターンと照合します。
references/xss-patterns.md- XSS の脆弱性references/injection-patterns.md- インジェクションの不備references/auth-vulnerabilities.md- 認証の問題references/nextjs-specific.md- Next.js の脆弱性
ステップ 5:レポートの生成
以下を使用して、セキュリティレポートを生成します。
assets/report-template.md- レポートの構成
深刻度の分類
| 深刻度 | 説明 | 必要な対応 |
|---|---|---|
| CRITICAL | 深刻な影響を及ぼす、悪用可能な脆弱性 | 直ちに修正が必要 |
| HIGH | 重大なセキュリティリスク | デプロイ前に修正 |
| MEDIUM | セキュリティ上の潜在的な問題 | 次回リリースで修正 |
| LOW | 軽微なセキュリティ上の懸念 | 修正を検討 |
| INFO | セキュリティのベストプラクティスに関する提案 | 任意の改善 |
スキャン対象の主なファイル
常に確認するファイル
**/*.ts、**/*.tsx、**/*.js、**/*.jsx- ソースコードnext.config.js、next.config.mjs- Next.js の設定package.json、package-lock.json- 依存関係middleware.ts、middleware.js- ミドルウェアのセキュリティ
環境ファイル
.env.example、.env.template- テンプレート分析のためスキャン.env、.env.local、.env.production- 実際のシークレットを含むため、デフォルトでスキップ
注: 実際の .env ファイルをバージョン管理にコミットしてはいけません。スキャナーは .env.example のテンプレートを分析し、必要な変数が適切に説明されていることを確認します。
優先度の高い場所
app/api/**/*- API ルート(App Router)pages/api/**/*- API ルート(Pages Router)**/actions.ts、**/*-actions.ts- サーバーアクションlib/auth*、utils/auth*- 認証コード**/middleware.*- ミドルウェアファイル
出力形式
検出結果は次の形式で報告してください。
[SEVERITY] Category: Description
File: path/to/file.ts:lineNumber
Code: <relevant code snippet>
Risk: <explanation of the security risk>
Fix: <recommended remediation>
CI/CD との統合
このスキルでは、次の形式に対応した出力を生成できます。
- GitHub Security Advisories
- GitHub Code Scanning 用の SARIF 形式
- カスタム統合用の JSON
参考資料
必要に応じて、次の追加コンテキストを読み込んでください。
references/owasp-top-10.md- OWASP Top 10:2025 クイックリファレンスreferences/xss-patterns.md- XSS 検出パターンreferences/injection-patterns.md- インジェクション脆弱性のパターンreferences/auth-vulnerabilities.md- 認証セキュリティのパターンreferences/nextjs-specific.md- Next.js 固有の脆弱性と CVE
コメント
Markdown 対応