sql-injection-prevention — скилл для Claude Code: обзор и установка
Скилл учит ИИ-агента писать защищённые запросы к базам данных через параметризацию и валидацию входных данных. Помогает при ревью легаси-кода и создании безопасных API-эндпоинтов.
npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a claude-codeЧто делает sql-injection-prevention
Скилл заставляет ИИ-агента использовать подготовленные выражения и параметризованные запросы вместо подстановки переменных в сырой SQL. Он пригодится при разработке эндпоинтов, исправлении уязвимостей после аудита безопасности и рефакторинге старых запросов.
В репозиторий входят справочные руководства для Node.js с PostgreSQL через библиотеку pg, Python со связкой SQLAlchemy ORM и Java с JDBC. Отдельный документ описывает очистку пользовательского ввода. Быстрый старт демонстрирует инициализацию пула соединений в Node.js с настройкой тайм-аутов.
Правила скилла прямо запрещают конкатенацию пользовательских строк и динамические имена колонок без белых списков. Доверять проверкам на стороне клиента нельзя. Агент следит за принципом наименьших привилегий для учётных записей базы данных и требует включать логирование запросов.
Какие задачи решает
- переписать сырые SQL-запросы на параметризованные выражения
- провести аудит легаси-кода на уязвимости перед инъекциями
- настроить безопасную работу с базой данных через SQLAlchemy или JDBC
- организовать проверку входящих параметров по белым спискам
Примеры запросов агенту
- Проверь файл
secure-db.jsна SQL-инъекции и перепиши небезопасные запросы на параметризованные. - Покажи, как безопасно отфильтровать пользователей через SQLAlchemy ORM без конкатенации строк.
- Добавь валидацию параметров и проверку по белому списку для динамического запроса в
references/nodejs-with-postgresql.md.
Как установить sql-injection-prevention
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a claude-code2Вручную: положить файлы
~/.claude/skills/sql-injection-prevention/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/sql-injection-prevention/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a codex2Вручную: положить файлы
.agents/skills/sql-injection-prevention/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a cursor2Вручную: положить файлы
.cursor/skills/sql-injection-prevention/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts sql-injection-prevention2Вручную: положить файлы
.github/skills/sql-injection-prevention/SKILL.md1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a gemini-cli2Командой платформы
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/sql-injection-preventionВручную: положить файлы
.devin/skills/sql-injection-prevention/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о sql-injection-prevention
Как установить sql-injection-prevention в Claude Code?
Выполните команду npx skills add aj-geddes/useful-ai-prompts --skill sql-injection-prevention -a claude-code. Файл навыка сохранится по пути ~/.claude/skills/sql-injection-prevention/SKILL.md.
Что делает скилл sql-injection-prevention?
Он задаёт правила безопасной работы с базами данных: требует параметризованные запросы, запрещает склеивание строк и обязывает валидировать любые входящие данные на бэкенде.
Какие технологии и ORM рассмотрены в справочниках скилла?
В репозитории есть готовые примеры для Node.js с драйвером pg, Python с библиотекой SQLAlchemy ORM и Java с интерфейсом JDBC.
Исходный текст
SKILL.md · MIT
---
name: sql-injection-prevention
description: >
Prevent SQL injection attacks using prepared statements, parameterized
queries, and input validation. Use when building database-driven applications
securely.
---
# SQL Injection Prevention
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Implement comprehensive SQL injection prevention using prepared statements, parameterized queries, ORM best practices, and input validation.
## When to Use
- Database query development
- Legacy code security review
- Security audit remediation
- API endpoint development
- User input handling
- Dynamic query generation
## Quick Start
Minimal working example:
```javascript
// secure-db.js
const { Pool } = require("pg");
class SecureDatabase {
constructor() {
this.pool = new Pool({
host: process.env.DB_HOST,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
});
}
/**
* ✅ SECURE: Parameterized query
*/
async getUserById(userId) {
const query = "SELECT * FROM users WHERE id = $1";
const values = [userId];
try {
const result = await this.pool.query(query, values);
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [Node.js with PostgreSQL](references/nodejs-with-postgresql.md) | Node.js with PostgreSQL |
| [Python with SQLAlchemy ORM](references/python-with-sqlalchemy-orm.md) | Python with SQLAlchemy ORM |
| [Java JDBC with Prepared Statements](references/java-jdbc-with-prepared-statements.md) | Java JDBC with Prepared Statements |
| [Input Validation & Sanitization](references/input-validation-sanitization.md) | Input Validation & Sanitization |
## Best Practices
### ✅ DO
- Use prepared statements ALWAYS
- Use ORM frameworks properly
- Validate all user inputs
- Whitelist dynamic values
- Use least privilege DB accounts
- Enable query logging
- Regular security audits
- Use parameterized queries
### ❌ DON'T
- Concatenate user input
- Trust client-side validation
- Use string formatting for queries
- Allow dynamic table/column names
- Grant excessive DB permissions
- Skip input validation
© aj-geddes · MIT · aj-geddes/useful-ai-prompts