# rate-limiting-abuse-protection

Скилл добавляет в проект ограничение частоты запросов: политики на маршрут, лимиты по IP и пользователю, скользящее окно и понятные ответы об ошибке.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 319 установок · ★ 63
- Автор: patricio0312rev
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/patricio0312rev/skills/tree/HEAD/backend/rate-limiting-abuse-protection/SKILL.md
- Обновлён: 2026-01-12
- HTML: https://affpapa.org/nevibecode/skills/rate-limiting-abuse-protection

## Что делает

Скилл описывает, как закрыть API от перебора и флуда. Внутри — четыре стратегии: фиксированное окно, скользящее окно, token bucket и leaky bucket. Для каждой даны примеры на TypeScript: глобальный лимитер через `express-rate-limit` и отдельный, более строгий, для эндпоинтов входа.

Для распределённых приложений есть вариант на Redis через `ioredis`: ключ чистится по score, запрос добавляется, счётчик читается, ключу ставится TTL. Отдельные блоки — лимит по `req.user.id` и проверка репутации IP со списком заблокированных адресов и запросом к threat intelligence API. Ответы отдают заголовки `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` и `Retry-After`, а при превышении — 429 с временем повтора.

Учтите: вариант с Redis требует запущенного Redis и пакета `ioredis`, а проверка репутации IP опирается на внешний сервис, которого в примере нет — функцию `checkThreatIntel` придётся написать самому. Скилл советует ставить разные лимиты на разные эндпоинты, снижать их для дорогих операций и пропускать внутренние сервисы.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patricio0312rev/skills --skill rate-limiting-abuse-protection -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/rate-limiting-abuse-protection/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/rate-limiting-abuse-protection/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patricio0312rev/skills --skill rate-limiting-abuse-protection -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/rate-limiting-abuse-protection/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patricio0312rev/skills --skill rate-limiting-abuse-protection -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/rate-limiting-abuse-protection/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install patricio0312rev/skills rate-limiting-abuse-protection
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/rate-limiting-abuse-protection/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patricio0312rev/skills --skill rate-limiting-abuse-protection -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/patricio0312rev/skills --path backend/rate-limiting-abuse-protection
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/rate-limiting-abuse-protection/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add patricio0312rev/skills --skill rate-limiting-abuse-protection -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/patricio0312rev/skills/tree/HEAD/backend/rate-limiting-abuse-protection/SKILL.md

## Когда брать
- ограничить частоту запросов к API по маршрутам
- защитить форму входа от перебора паролей
- считать лимит отдельно для каждого пользователя
- отдавать клиенту заголовки с остатком квоты и временем сброса
- вести лог нарушений и искать в нём всплески

## Примеры запросов агенту
- добавь rate limiting на /api/ с лимитом 100 запросов за 15 минут
- сделай строгий лимит на /api/auth/login — 5 попыток, успешные входы не считать
- перепиши лимитер на Redis со скользящим окном и лимитом по user id

## Похожие
- [rate-limiting-implementation](https://affpapa.org/nevibecode/skills/rate-limiting-implementation.md) — скилл · 502 установки
- [api-rate-limiting](https://affpapa.org/nevibecode/skills/secondsky-api-rate-limiting.md) — скилл · 491 установка
- [setup-rate-limiting](https://affpapa.org/nevibecode/commands/setup-rate-limiting.md) — команда · 247 установок
- [implementing-api-rate-limiting-and-throttling](https://affpapa.org/nevibecode/skills/implementing-api-rate-limiting-and-throttling.md) — скилл · 348 установок
- [api-gateway-backend-security-and-rate-limiting](https://affpapa.org/nevibecode/skills/api-gateway-backend-security-and-rate-limiting.md) — скилл · 360 установок
- [marketplace-rate-limiting](https://affpapa.org/nevibecode/skills/marketplace-rate-limiting.md) — скилл · 1000 установок

Из того же набора: [patricio0312rev/skills](https://affpapa.org/nevibecode/by/patricio0312rev/skills.md) — 26 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
