application-security について
application-security は、信頼できない入力、シークレット、外部リクエスト、描画コンテンツ、サードパーティ依存関係を扱うコードの作成・レビュー向けスキルです。OWASP Top 10:2025 に沿って、実装とレビューの両方を案内します。
主な機能
- 01シークレットと環境変数の取り扱い
- 02入力検証と出力エンコードの案内
- 03SSRF と外部フェッチのリスク確認
- 04アクセス制御とデータ露出のレビュー
- 05依存関係とサプライチェーンの評価
活用シーン
- 01ユーザー入力を安全に扱うリクエスト処理の実装
- 02変更内容の認証情報漏えいやアクセス制御の確認
- 03新しい外部リクエストや依存関係の安全性評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ axross/ skills --skill application-securityインストール後、Claude Code で/application-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/injection-and-output-encoding.mdinput-validation.mdprivacy-and-exposure.mdsecret-handling.mdssrf-and-embeds.mdsupply-chain.md詳細
アプリケーションセキュリティ
信頼できない入力、シークレット、外部へのリクエスト、レンダリングされるコンテンツ、またはサードパーティ依存関係を扱うコードを作成またはレビューするときは、必ずこの機能を使用してください。同じ一連のルールを、次の2つのモードで適用します。
- 構築 — デフォルトで安全なコードを書きます。後から忘れずにガードする必要がある方法ではなく、構造自体が安全な方法(境界でパースし、出力先でエンコードし、ホストを許可リストに限定するなど)を選びます。
- レビュー — 変更によって生じるリスクを確認し、重大度を付けて指摘します。そうすることで、マージ前に修正が反映されます。レビューのルールでは、それぞれのリスクに重大度(Critical/Major/Minor)が定められています。ホストプロジェクトで独自のレビュー重大度の用語が定義されている場合は、それに合わせてください。
指針は OWASP Top 10:2025 に基づいています。以下の各リファレンスでは、1つのリスクに対して両方のモードを扱います。リファレンスは、一般的なWebアプリケーションの構成、すなわち、公開/クライアントに公開される環境変数のプレフィックス、コンテンツレンダラー、画像オプティマイザー、メタデータルートを備えたフレームワークを想定しています。プロジェクトの構成が異なる場合は、適用を省略せず、同じルールをプロジェクト内の同等の箇所に適用してください。また、別の分野(依存関係の正当性確認、レビュー範囲など)に関わるルールについては、その分野を文中で示しているため、この機能だけで利用できます。
この文書における「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」は、RFC 2119 の記述に従って解釈してください。
OWASP Top 10:2025 の対象範囲
ルーティングに関わる2025年のカテゴリ変更は2つあります。SSRF は独立したカテゴリではなくなり、A01 Broken Access Control に統合されました。また、脆弱なコンポーネントおよび古いコンポーネントに関する項目は、新設された A03 Software Supply Chain Failures に拡張されました。
| リスクのトピック | 主な OWASP Top 10:2025 カテゴリ | リファレンス |
|---|---|---|
| シークレットと環境変数 | A04 Cryptographic Failures, A02 Security Misconfiguration | secret-handling |
| 入力検証 | A05 Injection | input-validation |
| インジェクションと出力エンコード | A05 Injection | injection-and-output-encoding |
| SSRF と外部フェッチ | A01 Broken Access Control | ssrf-and-embeds |
| アクセス制御とデータ露出 | A01 Broken Access Control, A02 Security Misconfiguration | privacy-and-exposure |
| サプライチェーン | A03 Software Supply Chain Failures | supply-chain |
シークレットと環境変数の取り扱い
secret-handling.md では、次の内容を扱っています。
- 1つの環境変数境界を介してシークレットを読み取り、ログ、テレメトリ、クライアントバンドルに含めないコードの作成
- コミットされた認証情報、許可リスト外の
process.envアクセス、またはクライアント向けプレフィックス付き環境変数を介して公開されたシークレットが差分にないかのレビュー - 実際の値を使わずに、環境変数のサンプルファイルと
.env.exampleのドキュメントの正確性を保つ方法
入力検証
input-validation.md では、次の内容を扱っています。
- リクエスト入力をすべて境界でパースおよび型変換してから、データ層、外部への
fetch、またはレンダリングパイプラインに渡す方法 - 静的型にかかわらず、ルートパラメーター、クエリパラメーター、リクエストボディ、保存済みレコードを信頼できないものとして扱う方法
- ハンドラー、サーバーアクション、データアクセス関数、ファイルアップロードに実行時チェックの不足がないかのレビュー
インジェクションと出力エンコーディング
詳しくは、injection-and-output-encoding.md をご覧ください。
- 信頼できないコンテンツを出力コンテキストごとにエンコードし、フレームワークの安全な出力先を通じてのみレンダリングする
- 形式が許す場合は、URL スキームを許可リストで制限し、リッチテキスト HTML をサニタイズする
- レンダリングコンポーネント、カスタムノード、パイプラインの変更をレビューし、生の HTML を出力する箇所やエンコーディングを迂回する経路がないか確認する
SSRF と外部フェッチ
詳しくは、ssrf-and-embeds.md をご覧ください。
- ユーザーまたは CMS が制御する URL を安全にフェッチする:拒否リストより許可リストを優先し、予約済み範囲に対して解決と検証を行い、リダイレクトと DNS リバインディングに対処し、タイムアウトを厳しく設定する
- 外部フェッチのトリアージ図と、予約済み範囲/クラウドメタデータの参照表
- 新しいフェッチ呼び出し元、画像ホストのエントリー、メタデータルート、ミューテーションエンドポイントをレビューし、SSRF または CSRF の抜けがないか確認する
アクセス制御とデータ漏えい
詳しくは、privacy-and-exposure.md をご覧ください。
- 公開領域ではデフォルトでデータを最小限にし、未公開コンテンツ、プレビューコンテンツ、管理者向けコンテンツには明示的なチェックを設けてアクセスを制限する
- 内部識別子、ストレージキー、環境由来の値を、公開レスポンス、メタデータ、分析情報に含めない
- 公開ルート、メタデータ生成処理、または localhost 制限付きの経路を変更する差分をレビューし、非公開データが漏えいしないか確認する
サプライチェーン
詳しくは、supply-chain.md をご覧ください。
- 依存関係の追加は慎重に判断する:追加に正当な理由があり、保守が継続され、プラットフォームに依存せず、ロックファイルでバージョンが固定され、未審査のライフサイクルスクリプトを実行せずにインストールできること
- 信頼できる発行元のバージョンタグ、または不変の CI アクション SHA を選び、ジョブの認証情報、書き込み可能な出力、後続のフェッチをそれぞれ個別に評価する
- 新たな薄い依存関係より、標準ライブラリやプラットフォーム API を優先する
- マニフェストまたはロックファイルの変更をレビューし、正当な理由のない追加、重量級の追加、リスクの高い追加がないか確認する