mcpField
A
application-security

application-security

github.com/axrossセキュリティ143 回インストール1 日前に更新
リポジトリ

application-security について

application-security は、信頼できない入力、シークレット、外部リクエスト、描画コンテンツ、サードパーティ依存関係を扱うコードの作成・レビュー向けスキルです。OWASP Top 10:2025 に沿って、実装とレビューの両方を案内します。

主な機能

  1. 01シークレットと環境変数の取り扱い
  2. 02入力検証と出力エンコードの案内
  3. 03SSRF と外部フェッチのリスク確認
  4. 04アクセス制御とデータ露出のレビュー
  5. 05依存関係とサプライチェーンの評価

活用シーン

  1. 01ユーザー入力を安全に扱うリクエスト処理の実装
  2. 02変更内容の認証情報漏えいやアクセス制御の確認
  3. 03新しい外部リクエストや依存関係の安全性評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/axross/skills --skill application-security

インストール後、Claude Code で/application-securityを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
injection-and-output-encoding.md
input-validation.md
privacy-and-exposure.md
secret-handling.md
ssrf-and-embeds.md
supply-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 Misconfigurationsecret-handling
入力検証A05 Injectioninput-validation
インジェクションと出力エンコードA05 Injectioninjection-and-output-encoding
SSRF と外部フェッチA01 Broken Access Controlssrf-and-embeds
アクセス制御とデータ露出A01 Broken Access Control, A02 Security Misconfigurationprivacy-and-exposure
サプライチェーンA03 Software Supply Chain Failuressupply-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 を優先する
  • マニフェストまたはロックファイルの変更をレビューし、正当な理由のない追加、重量級の追加、リスクの高い追加がないか確認する

コメント