Security Guidelines
Required References
このスキルを読み込んだ後、以下のファイルをReadツールで読み込むこと。
必須(常に読み込む):
references/vulnerability-catalog.md- 11種類の脆弱性の概要カタログreferences/checklist.md- 包括的な実装チェックリスト
条件付き(該当時のみ):
references/injection.md- SQLインジェクション、OSコマンド、ディレクトリトラバーサルの診断時references/xss.md- XSS(クロスサイトスクリプティング)の診断時references/csrf-session.md- CSRF、セッション管理の診断時references/http-headers.md- HTTPヘッダインジェクション、メールヘッダインジェクション、クリックジャッキングの診断時references/access-control.md- アクセス制御(IDOR)、認証、パスワード管理の診断時
IPA準拠のセキュリティ診断・レビュースキル。Laravel + Reactアプリケーションの実装時・レビュー時に11種類の脆弱性を診断し、安全なコード例を提供する。
Overview
このスキルは、IPAの「安全なウェブサイトの作り方 第7版」に基づき、以下の機能を提供する:
- 脆弱性診断: コードの脆弱性を11のカテゴリで検証
- 安全なコード例提供: Laravel/React固有の安全な実装パターン
- チェックリストベース検証: 実装漏れの防止
- ルール連携:
.claude/rules/security/と連携した包括的なガイダンス
重要: このスキルは .claude/rules/security/ のルールと協調動作する。rulesが「守るべき規約」を提供し、本スキルは「実行する診断ワークフロー」を提供する。
Diagnostic Workflow
セキュリティ診断は以下のワークフローで実行する:
Phase 1: Scope Identification
対象コードのスコープを特定:
- コード種別の判定
- Backend (Laravel): Controller, UseCase, Repository, Model - Frontend (React): Component, Hook, Form - API: Endpoint, Middleware
- 関連する脆弱性カテゴリの特定
- 入力処理 → SQLインジェクション、OSコマンド、ディレクトリトラバーサル - 出力処理 → XSS - フォーム → CSRF - 認証/認可 → セッション管理、アクセス制御 - ファイル操作 → ディレクトリトラバーサル - HTTPレスポンス → HTTPヘッダインジェクション
Phase 2: Vulnerability Analysis
特定されたカテゴリごとに診断:
診断方法:
- 該当する
references/*.mdを読み込む - 脆弱なパターンと照合
- 安全なパターンとの差分を特定
診断対象の11カテゴリ:
- SQL Injection
- OS Command Injection
- Directory Traversal
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Session Management
- HTTP Header Injection
- Mail Header Injection
- Clickjacking
- Access Control (IDOR)
- Authentication & Password Management
詳細は references/vulnerability-catalog.md を参照。
Phase 3: Report & Remediation
診断結果をレポート:
レポート形式:
## セキュリティ診断結果
### 検出された問題
#### [脆弱性名] (重要度: 高/中/低)
**問題箇所**:
[ファイルパス:行番号]
**脆弱性の説明**:
[なぜ危険なのか]
**現在のコード**:[脆弱なコード]
**推奨される修正**:
[安全なコード]
**参考**: references/[該当ファイル].md
Phase 4: Checklist Verification
最終確認としてチェックリストを実行:
- references/checklist.md を読み込む
- 該当するカテゴリのチェックリストを確認
- 未実施項目があれば追加で指摘
Quick Start
コード実装時の使用
「このログイン処理のセキュリティをチェックして」 → セッション管理、CSRF、パスワード管理を診断
コードレビュー時の使用
「このPR全体のセキュリティレビューをして」 → 変更されたファイルを分析し、関連する脆弱性を診断
特定の脆弱性に対するチェック
「XSS対策ができているか確認して」 → references/xss.md を参照して診断
Vulnerability Categories
11種類の脆弱性の詳細は、以下のreferencesファイルを参照:
Injection Vulnerabilities
- SQL Injection: See references/injection.md
- OS Command Injection: See references/injection.md
- Directory Traversal: See references/injection.md
XSS Vulnerabilities
- Cross-Site Scripting: See references/xss.md
- Laravel/Blade XSS prevention - React XSS prevention - Content Security Policy (CSP)
CSRF & Session
- CSRF: See references/csrf-session.md
- Session Management: See references/csrf-session.md
HTTP Header Vulnerabilities
- HTTP Header Injection: See references/http-headers.md
- Mail Header Injection: See references/http-headers.md
- Clickjacking: See references/http-headers.md
Access Control & Authentication
- Access Control (IDOR): See references/access-control.md
- Password Management: See references/access-control.md
Comprehensive Checklist
- Implementation Checklist: See references/checklist.md
Integration with Rules
このスキルは .claude/rules/security/ のルールと以下のように連携する:
| Rules | Skills |
|---|---|
| 常にコンテキストに読み込まれる | 診断時にトリガーされる |
| 「守るべき規約」を定義 | 「実行する診断ワークフロー」を提供 |
| 静的なガイドライン | 動的な診断プロセス |
| コーディング時の参照 | レビュー時の実行 |
使い分け:
- 実装中: Rules が自動的に適用される
- レビュー時: このスキルを明示的に起動して診断を実行
Best Practices
診断の優先順位
高優先度 (重大な影響):
- SQL Injection
- XSS
- CSRF
- Access Control (IDOR)
- Session Management
中優先度 (重要):
- OS Command Injection
- Directory Traversal
- Password Management
低優先度 (推奨):
- HTTP Header Injection
- Mail Header Injection
- Clickjacking
診断の範囲
最小スコープ: 単一の関数/メソッド 推奨スコープ: 単一のファイルまたは機能 最大スコープ: Pull Request全体
注意: スコープが大きすぎる場合は、機能ごとに分割して診断することを推奨。
False Positive の回避
以下のケースでは誤検知を避ける:
- Laravel の標準機能を正しく使用している場合:
- {{ }} によるエスケープ - @csrf ディレクティブ - Hash::make() によるパスワードハッシュ - Laravel Policy による認可チェック
- React の標準機能を正しく使用している場合:
- JSX のデフォルトエスケープ - DOMPurify によるサニタイズ
これらが正しく使用されている場合は「✅ 安全」と判定する。
Resources
references/
脆弱性カテゴリごとの詳細資料:
vulnerability-catalog.md: 11種類の脆弱性の概要injection.md: SQLインジェクション、OSコマンド、ディレクトリトラバーサルxss.md: XSS対策(Laravel/React)csrf-session.md: CSRF、セッション管理http-headers.md: HTTPヘッダ系脆弱性access-control.md: アクセス制御、認証、パスワード管理checklist.md: 包括的な実装チェックリスト