mcpField
I
input-validation-sanitization-auditor

input-validation-sanitization-auditor

github.com/patricio0312rev安全63276 次安装41 周前更新
代码仓库

关于 input-validation-sanitization-auditor

面向开发者的输入验证与清理审查技能,聚焦通过正确处理输入减少注入风险。涵盖 XSS、SQL 注入防护及验证模式。

主要功能

  1. 01XSS 转义与防护
  2. 02SQL 参数化查询
  3. 03输入验证模式
  4. 04输出编码与清理
  5. 05安全测试检查清单

适用场景

  1. 01审查搜索页面的 HTML 输出
  2. 02检查数据库查询是否拼接输入
  3. 03为请求数据定义验证规则

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/patricio0312rev/skills --skill input-validation-sanitization-auditor

安装后在 Claude Code 中输入/input-validation-sanitization-auditor确认已加载。

详细介绍

输入验证与清理审计工具

通过正确处理输入来防止注入攻击。

XSS 防护

// ❌ DANGEROUS: Direct HTML injection
app.get("/search", (req, res) => {
  res.send(`<h1>Results for: ${req.query.q}</h1>`); // XSS!
});

// ✅ SAFE: Properly escaped
import { escape } from "html-escaper";

app.get("/search", (req, res) => {
  res.send(`<h1>Results for: ${escape(req.query.q)}</h1>`);
});

// ✅ BETTER: Template engine with auto-escaping
res.render("search", { query: req.query.q }); // EJS/Pug escape by default

SQL 注入防护

// ❌ DANGEROUS: String concatenation
const userId = req.params.id;
const query = `SELECT * FROM users WHERE id = '${userId}'`; // SQL Injection!
db.query(query);

// ✅ SAFE: Parameterized queries
db.query("SELECT * FROM users WHERE id = $1", [userId]);

// ✅ BEST: ORM (Prisma)
await prisma.user.findUnique({ where: { id: userId } });

输入验证模式

import { z } from "zod";

const userSchema = z.object({
  email: z.string().email().max(255),
  password: z.string().min(12).max(128),
  age: z.number().int().min(13).max(120),
  website: z.string().url().optional(),
});

app.post("/register", async (req, res) => {
  try {
    const validated = userSchema.parse(req.body);
    await createUser(validated);
    res.json({ success: true });
  } catch (error) {
    res.status(400).json({ error: error.errors });
  }
});

输出检查清单

  • XSS 防护(转义、CSP)
  • SQL 注入防护(参数化查询)
  • 命令注入防护
  • 输入验证模式
  • 输出编码
  • 清理库
  • 安全测试 ENDFILE

评论

支持 Markdown