返回 Skill 列表
extension
分类: 开发与工程无需 API Key

input-validation-security

Web应用程序中的全面输入验证和清理。通过类型安全的验证、许可列表过滤、上下文相关编码来防止XSS、SQL注入、命令注入、路径遍历等基于输入的攻击。 锚点: • OWASP Top 10 / 适用: 所有输入验证决策 / 目标: 行业标准的安全基线 • CWE-20 (不适当的输入验证) / 适用: 验证策略设计 / 目标: 防止常见的漏洞模式 • OWASP ASVS 5.1 / 适用: 验证要求规范 / 目标: 安全验证标准 触发条件:在实现用户输入处理、表单验证、API请求验证、文件上传处理、数据库查询构建、带有用户输入的命令执行、URL参数处理或任何来自不受信任源的数据时使用。

person作者: jakexiaohubgithub

入力検証セキュリティ

概要

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

主な機能:

  • 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.md | Phase 1 | コードベース | 入力インベントリ | | agents/design-validation.md | Phase 2 | 入力インベントリ | 検証スキーマ | | agents/implement-validation.md | Phase 3 | スキーマ | 本番コード | | agents/security-test.md | Phase 4 | 実装 | テスト結果 |

ベストプラクティス

すべきこと

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

避けるべきこと

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

リソース参照

参照資料

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

スクリプト

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

アセット

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

変更履歴

| Version | Date | Changes | | ------- | ---------- | ------------------------------------------------------------- | | 1.1.0 | 2026-01-02 | 18-skills.md仕様準拠、日本語化、references/scripts/assets追加 | | 1.0.0 | 2025-12-31 | 初版作成 |