mcpField
I
input-validation-sanitization-auditor

input-validation-sanitization-auditor

github.com/patricio0312revセキュリティ63276 回インストール41 週間前に更新
リポジトリ

input-validation-sanitization-auditor について

入力処理を点検し、インジェクションのリスク低減を支援する開発者向けスキルです。XSS・SQLインジェクション対策や検証スキーマを扱います。

主な機能

  1. 01XSSのエスケープと防止
  2. 02パラメーター化SQLクエリ
  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

コメント