Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问clear审计未展示

input-validation输入验证

Agent Skill

input-validation 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

441

周安装

18

GitHub Stars

公开资料未说明

下载量

141
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:input-validation(输入验证)
来源仓库:https://github.com/yonatangross/skillforge-claude-plugin
仓库路径:skills/input-validation
安装命令:
npx skills add yonatangross/skillforge-claude-plugin --skill "input-validation"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add yonatangross/skillforge-claude-plugin --skill "input-validation"

简介

input-validation 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。

  • 适用于研究检索类任务,可结合来源仓库、安装命令和原始 README 继续核验具体用法。
  • 通过 npx skills add yonatangross/skillforge-claude-plugin --skill "input-validation" 安装。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Input Validation

Validate and sanitize all untrusted input using Zod v4 and Pydantic.

Overview

  • Processing user input
  • Query parameters
  • Form submissions
  • API request bodies
  • File uploads
  • URL validation

Core Principles

  1. Never trust user input
  2. Validate on server-side (client-side is UX only)
  3. Use allowlists (not blocklists)
  4. Validate type, length, format, range

Quick Reference

Zod v4 Schema

import { z } from 'zod';

const UserSchema = z.object({
  email: z.string().email(),
  name: z.string().min(2).max(100),
  age: z.coerce.number().int().min(0).max(150),
  role: z.enum(['user', 'admin']).default('user'),
});

const result = UserSchema.safeParse(req.body);
if (!result.success) {
  return res.status(400).json({ errors: result.error.flatten() });
}

Type Coercion (v4)

// Query params come as strings - coerce to proper types
z.coerce.number()  // "123" → 123
z.coerce.boolean() // "true" → true
z.coerce.date()    // "2024-01-01" → Date

Discriminated Unions

const ShapeSchema = z.discriminatedUnion('type', [
  z.object({ type: z.literal('circle'), radius: z.number() }),
  z.object({ type: z.literal('rectangle'), width: z.number(), height: z.number() }),
]);

Pydantic (Python)

from pydantic import BaseModel, EmailStr, Field

class User(BaseModel):
    email: EmailStr
    name: str = Field(min_length=2, max_length=100)
    age: int = Field(ge=0, le=150)

Anti-Patterns (FORBIDDEN)

// ❌ NEVER rely on client-side validation only
if (formIsValid) submit();  // No server validation

// ❌ NEVER use blocklists
const blocked = ['password', 'secret'];  // Easy to miss fields

// ❌ NEVER trust Content-Type header
if (file.type === 'image/png') {...}  // Can be spoofed

// ❌ NEVER build queries with string concat
"SELECT * FROM users WHERE name = '" + name + "'"  // SQL injection

// ✅ ALWAYS validate server-side
const result = schema.safeParse(req.body);

// ✅ ALWAYS use allowlists
const allowed = ['name', 'email', 'createdAt'];

// ✅ ALWAYS validate file magic bytes
const isPng = buffer[0] === 0x89 && buffer[1] === 0x50;

// ✅ ALWAYS use parameterized queries
db.query('SELECT * FROM users WHERE name = ?', [name]);

Key Decisions

DecisionRecommendation
Validation libraryZod (TS), Pydantic (Python)
StrategyAllowlist over blocklist
LocationServer-side always
Error messagesGeneric (don't leak info)
File validationCheck magic bytes, not just extension

Detailed Documentation

ResourceDescription
references/zod-v4-api.mdZod v4 API with coercion, transforms
examples/validation-patterns.mdComplete validation examples
checklists/validation-checklist.mdImplementation checklist
scripts/validation-schemas.tsReady-to-use schema templates

Related Skills

  • owasp-top-10 - Injection prevention
  • auth-patterns - User input in auth
  • type-safety-validation - TypeScript patterns

Capability Details

schema-validation

Keywords: schema, validate, Zod, Pydantic, validation Solves:

  • Validate input against schemas
  • Define validation rules declaratively
  • Handle validation errors gracefully

type-coercion

Keywords: coerce, coercion, type conversion, parse Solves:

  • Automatically convert input types
  • Parse strings to numbers/dates
  • Handle type mismatches

allowlist-validation

Keywords: allowlist, whitelist, enum, literal, allowed values Solves:

  • Validate against allowed values
  • Prevent injection attacks
  • Restrict input to safe options

html-sanitization

Keywords: sanitize, HTML, XSS, escape, DOMPurify Solves:

  • Sanitize HTML input safely
  • Prevent XSS attacks
  • Allow safe HTML subset

file-validation

Keywords: file, upload, MIME type, file size, file type Solves:

  • Validate file uploads securely
  • Check file content not just extension
  • Enforce size limits

error-formatting

Keywords: error, error message, validation error, user-friendly Solves:

  • Format validation errors for users
  • Avoid exposing internal details
  • Provide actionable error messages

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.64%
按下载量换算39

OpenCode

23.58%
按下载量换算33

Antigravity

15.52%
按下载量换算22

Gemini CLI

12.14%
按下载量换算17

windsurf

8.04%
按下载量换算11

trae

3.29%
按下载量换算5

安全审计

暂无安全审计结果可展示。

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills