К основному содержанию
скилл CX Codex

api-security-hardening · secondsky — скилл для Claude Code: как установить

Скилл со слоями защиты для REST API на Express: лимиты запросов и валидация ввода. Пригодится перед выкладкой API в прод.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add secondsky/claude-skills --skill api-security-hardening -a claude-code
Открыть на GitHub

Что делает api-security-hardening

Скилл даёт агенту готовую раскладку защиты для REST API на Express. Подключает helmet и express-mongo-sanitize, ставит два лимита через express-rate-limit: 100 запросов за 15 минут на /api/ и 5 на /api/auth/. Ещё в нём пример валидации через express-validator: проверка email, пароль от 8 символов с заглавной буквой и цифрой, имя до 100 символов.

Отдельно есть блок заголовков (Content-Security-Policy, X-Frame-Options, Strict-Transport-Security) и чек-лист: HTTPS, CORS только для разрешённых origin, никаких стектрейсов в проде. Для Python предусмотрен файл references/python-nginx.md с FastAPI, Pydantic и настройкой Nginx.

Очистку от XSS скилл на себя не берёт: пакет xss-clean заброшен, поэтому он отсылает к скиллу xss-prevention. И ещё: в express-validator v7+ убрали .escape(), так что пример обходится через customSanitizer с escape-html.

Какие задачи решает

  • поставить лимит запросов на /api/ и жёстче на /api/auth/
  • проверять email и пароль в POST /users через express-validator
  • выставить Content-Security-Policy и HSTS-заголовки
  • пройтись по чек-листу перед выкладкой API в прод
  • закрыть FastAPI-сервис по образцу из references/python-nginx.md

Примеры запросов агенту

  • Прогони мой Express API через api-security-hardening и добавь helmet с лимитами запросов
  • Используй скилл api-security-hardening: настрой валидацию в POST /users и заголовки безопасности
  • Проверь API по чек-листу из api-security-hardening перед релизом

Как установить api-security-hardening

1Через Skills CLI (Vercel)

npx skills add secondsky/claude-skills --skill api-security-hardening -a claude-code

2Вручную: положить файлы

~/.claude/skills/api-security-hardening/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/api-security-hardening/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о api-security-hardening

Как установить api-security-hardening в Claude Code?

Выполните npx skills add secondsky/claude-skills --skill api-security-hardening -a claude-code. Скилл лежит в ~/.claude/skills/api-security-hardening/SKILL.md.

Что делает api-security-hardening?

Даёт агенту схему защиты REST API на Express: helmet с лимитами запросов и валидацию через express-validator. К ней идут заголовки безопасности и чек-лист для релиза.

Почему в api-security-hardening нет xss-clean?

Пакет xss-clean заброшен, поэтому скилл его не использует. Для очистки ввода он отсылает к скиллу xss-prevention.

Исходный текст

SKILL.md · MIT
---
name: api-security-hardening
description: REST API security hardening with authentication, rate limiting, input validation, security headers. Use for production APIs, security audits, defense-in-depth, or encountering vulnerabilities, injection attacks, CORS issues.
license: MIT
---

# API Security Hardening

Protect REST APIs against common vulnerabilities with multiple security layers.

## Security Middleware Stack (Express)

```javascript
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
const mongoSanitize = require('express-mongo-sanitize');

app.use(helmet());
app.use(mongoSanitize());
// For input sanitization, see the `xss-prevention` skill — do NOT use the
// deprecated `xss-clean` package (unmaintained since 2018; its own README
// recommends migrating off it).

app.use('/api/', rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 100
}));

app.use('/api/auth/', rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 5
}));
```

## Input Validation

```javascript
const { body, validationResult } = require('express-validator');
const escapeHtml = require('escape-html');

app.post('/users',
  body('email').isEmail().normalizeEmail(),
  body('password').isLength({ min: 8 }).matches(/[A-Z]/).matches(/[0-9]/),
  // express-validator v7+ removed the built-in .escape() sanitizer; use a
  // customSanitizer backed by `escape-html` to HTML-escape the value.
  body('name').trim().isLength({ max: 100 }).customSanitizer(v => escapeHtml(v)),
  (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }
    // Process request
  }
);
```

## Security Headers

```javascript
app.use((req, res, next) => {
  res.setHeader('Content-Security-Policy', "default-src 'self'");
  res.setHeader('X-Frame-Options', 'DENY');
  res.setHeader('X-Content-Type-Options', 'nosniff');
  res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
  res.setHeader('X-XSS-Protection', '1; mode=block');
  next();
});
```

## Security Checklist

- [ ] HTTPS everywhere
- [ ] Authentication on all protected routes
- [ ] Input validation and sanitization
- [ ] Rate limiting enabled
- [ ] Security headers configured
- [ ] CORS restricted to allowed origins
- [ ] No stack traces in production errors
- [ ] Audit logging enabled
- [ ] Dependencies regularly updated

## Additional Implementations

See [references/python-nginx.md](references/python-nginx.md) for:
- Python FastAPI security middleware
- Pydantic input validation with password rules
- Nginx SSL/TLS and security headers configuration
- HTTP Parameter Pollution prevention

## Never Do

- Trust user input without validation
- Return detailed errors in production
- Store secrets in code
- Use GET for state-changing operations
- Disable security for convenience

© secondsky · MIT · secondsky/claude-skills

Похожие скиллы

Все скиллы по теме «Безопасность» →

Сначала — api-security-hardening от других авторов.

api-security-hardening aj-geddes Скилл добавляет в проект аутентификацию, rate limiting, CORS, валидацию входящих данных и заголовки безопасности для REST API. CX Codex +1 862установок git-guardrails-claude-code Matt Pocock Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения. 499 069установок ponytail-review DietrichGebert Скилл проверяет изменения глубже обычного diff: читает связанный код, ищет ошибки, риски, проблемы нагрузки и недостающие тесты. Пригодится для ревью PR и коммитов. CX Codex +1 57 000установок ponytail-audit DietrichGebert Проверяет репозиторий и ранжирует ошибки, риски и лишний код. Подойдёт, если нужен разовый разбор без автоматических правок. CX Codex +1 45 400установок security-audit cloudflare Проверяет кодовую базу на уязвимости и ищет нарушения границ доверия. Пригодится перед релизом или для точечного разбора опасных участков кода. CX Codex +1 54 800установок security-and-hardening addyosmani Помогает проектировать защиту и проверять код на уязвимости при работе с вводом, авторизацией, сессиями и внешними сервисами. Подойдёт перед релизом и при создании функций, которые обрабатывают недоверенные данные. CX Codex +1 70 200установок supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок

Из того же набора116

bun-sqlite Скилл подсказывает агенту, как писать код для встроенного драйвера bun:sqlite: запросы, подготовленные выражения, транзакции. CX Codex +1 495установок architecture-patterns Скилл для проектирования бэкенда: раскладывает код по слоям Clean Architecture, портам и адаптерам, подсказывает тактические приёмы DDD. CX Codex +1 493установок api-rate-limiting Скилл помогает добавить ограничение частоты запросов к API: алгоритмы token bucket, sliding window и вариант на Redis. Пригодится, когда открываешь публичный API или делишь доступ по тарифам. CX Codex +1 491установок better-auth Помогает настроить аутентификацию Better Auth в Hono или Cloudflare D1. Подсказывает рабочие схемы для Drizzle ORM и предотвращает частые ошибки адаптеров базы данных. CX Codex +1 488установок react-composition-patterns Набор архитектурных правил React для ИИ-агента. Помогает избавиться от десятков булевых пропсов, выстроить составные компоненты и изолировать состояние в провайдерах. CX Codex +1 481установок design-system-creation Скилл помогает агенту собрать дизайн-систему: токены, типографику, компоненты и документацию к ним. Пригодится, когда стандарты интерфейса нужно зафиксировать до начала вёрстки. CX Codex +1 481установок api-contract-testing Скилл помогает проверять контракты API между микросервисами через Pact и схемы OpenAPI без развёртывания полного сквозного окружения. CX Codex +1 475установок technical-specification Скилл ведёт агента по шаблону технической спецификации: требования, архитектура, API, план внедрения, тесты и риски. Пригодится, когда фичу планируют до кода. CX Codex +1 470установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой