Skip to content
input-validation-security logo

入力検証セキュリティ

input-validation-security

Webアプリケーションにおける包括的な入力検証とサニタイズ。型安全な検証、許可リストフィルタリング、 コンテキスト対応エンコーディングを通じて、XSS、SQLインジェクション、コマンドインジェクション、 パストラバーサルなどの入力ベースの攻撃を防止。 Anchors: • OWASP Top 10 / 適用: 全ての入力検証判断 / 目的: 業界標準のセキュリティベースライン • CWE-20 (不適切な入力検証) / 適用: 検証戦略設計 / 目的: 一般的な脆弱性パターン防止 • OWASP ASVS 5.1 / 適用: 検証要件仕様 / 目的: セキュリティ検証標準 Trigg...

SKILL.md

Full skill instructions

入力検証セキュリティ

概要

型安全な検証とコンテキスト対応エンコーディングを通じて、インジェクション攻撃を防止する 多層防御型の入力検証スキル。

主な機能:

  • Zodによる型安全な検証
  • コンテキスト対応の出力エンコーディング
  • 許可リストベースのフィルタリング
  • ファイルアップロードセキュリティ
  • SQL/​XSS/コマンドインジェクション防止

ワークフロー

Phase 1: 入力分析

目的: すべての入力ベクターをマッピングし、リスクを評価

アクション:

  1. Task呼び出し: agents/​analyze-inputs.md
  2. 参照: references/​basics.md
  3. 各入力のリスクレベルを分類

成果物: リスク分類付き入力インベントリ

Phase 2: 検証設計

目的: 型安全な検証スキーマを設計

アクション:

  1. Task呼び出し: agents/​design-validation.md
  2. 参照: references/​patterns.md
  3. 許可リストと検証ルールを定義

成果物: 検証スキーマ仕様

Phase 3: 実装

目的: 検証コードを実装

アクション:

  1. Task呼び出し: agents/​implement-validation.md
  2. テンプレート使用: assets/​validation-schema.template.ts
  3. エンコーディング適用: assets/​encoding-helpers.ts

成果物: 本番用検証コード

Phase 4: セキュリティテスト

目的: 攻撃に対する防御を検証

アクション:

  1. 実行: node scripts/​validate-inputs.mjs --target <path>
  2. Task呼び出し: agents/​security-test.md
  3. 参照: references/​xss-prevention.md, references/​sql-injection-prevention.md

成果物: セキュリティテストレポート

Task仕様ナビ

Taskファイル使用タイミング入力出力
agents/​analyze-inputs.mdPhase 1コードベース入力インベントリ
agents/​design-validation.mdPhase 2入力インベントリ検証スキーマ
agents/​implement-validation.mdPhase 3スキーマ本番コード
agents/​security-test.mdPhase 4実装テスト結果

ベストプラクティス

すべきこと

  • 信頼境界で検証する
  • セキュアに失敗する(検証失敗時は拒否)
  • ブロックリストより許可リストを使用
  • 型検証を最初に行う
  • 出力コンテキストに応じてエンコード
  • 入力長を制限
  • 検証失敗をログ記録

避けるべきこと

  • クライアント側のみの検証に依存
  • ブロックリストフィルタリングの使用
  • SQL/コマンドの文字列連結
  • Referer/​Originヘッダーを信頼
  • 部分的なエンコーディング
  • 複雑な正規表現(ReDoSリスク)
  • 使用後に検証

リソース参照

参照資料

リソースパス目的
基礎references/​basics.md基本概念
パターンreferences/​patterns.md実装パターン
XSS防止references/​xss-prevention.mdXSS防御
SQLi防止references/​sql-injection-prevention.mdSQLインジェクション防御

スクリプト

スクリプト使用方法目的
validate-inputs.mjsnode scripts/​validate-inputs.mjs --target <path>脆弱性スキャン
log_usage.mjsnode scripts/​log_usage.mjs --result success --phase complete使用状況ログ

アセット

テンプレート目的
validation-schema.template.tsZodスキーマテンプレート
encoding-helpers.tsコンテキスト対応エンコード関数

変更履歴

VersionDateChanges
1.1.02026-01-0218-skills.md仕様準拠、日本語化、references/​scripts/​assets追加
1.0.02025-12-31初版作成