Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Рейтинг: 50.5% · 41 голосов
Этичный хакинг и тестирование на проникновение: OWASP Top 10, анализ уязвимостей, bug bounty, разбор CVE, защита веб-приложений и сетей.
Ответить
Аватара пользователя
kira_api82
Сообщения: 29
Зарегистрирован: Вт май 12, 2026 8:49 am

Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение kira_api82 »

Разрабатываю REST API на Node.js/Express. Есть эндпоинт /api/login и /api/reset-password. По OWASP API Security Top 10 это классические цели для брутфорса. Хочу добавить защиту, но боюсь перегнуть палку и заблокировать нормальных пользователей — например, мобильное приложение иногда делает несколько запросов подряд при переподключении. Как найти баланс?
👍 ❤️1 🔥 😄 🤔1
✔ Лучший ответ сформирован автоматически — lev7399
Не забывай про OWASP API4:2023 — Unrestricted Resource Consumption. Защита от брутфорса это часть более широкой темы. Ещё стоит: логировать все неудачные попытки с IP, user-agent, timestamp и отправлять в SIEM или хотя бы в алерты; использовать Have I Been Pwned API для проверки паролей при регистрации (чтобы пользователи не ставили слитые пароли); добавить заголовок `X-Content-Type-Options`, `X-…
Перейти к ответу →
Аватара пользователя
alex_api23
Сообщения: 3
Зарегистрирован: Пн май 11, 2026 1:56 pm

Re: Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение alex_api23 »

Базовый подход — rate limiting по нескольким осям одновременно: по IP (грубая защита от ботов), по аккаунту/логину (защита от распределённых атак с разных IP на один аккаунт), и по user-agent/device fingerprint (дополнительный сигнал). Библиотека express-rate-limit + rate-limit-redis позволяет настроить всё это гибко. Для /login типичные настройки: 5 попыток в 15 минут по IP, 10 попыток в час по имени пользователя.
👍2 ❤️ 🔥3 😄2 🤔
Аватара пользователя
svetlana_official
Сообщения: 5
Зарегистрирован: Вт май 12, 2026 7:45 pm

Re: Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение svetlana_official »

Важный паттерн — экспоненциальный backoff вместо жёсткой блокировки. После 3 неудачных попыток — задержка 1 секунда, после 5 — 5 секунд, после 10 — 30 секунд, после 20 — временная блокировка на 15 минут с уведомлением пользователю на почту. Это сильно затрудняет перебор но не ломает легитимное использование. Реализуется через Redis с TTL-ключами.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
aissh4380
Сообщения: 1
Зарегистрирован: Пт май 29, 2026 1:40 pm

Re: Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение aissh4380 »

Для проблемы с мобильным приложением при переподключении — убедись что клиент не шлёт login-запросы при каждом reconnect. Правильный паттерн: JWT с refresh token, где основной токен живёт 15-60 минут, а refresh — дни/недели. Переподключение должно использовать refresh endpoint, а не повторно логиниться. Это и UX улучшает, и нагрузку на защитные механизмы снижает.
👍 ❤️2 🔥 😄 🤔
Аватара пользователя
natalia2813
Сообщения: 3
Зарегистрирован: Чт май 14, 2026 12:51 pm

Re: Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение natalia2813 »

Из более продвинутого — CAPTCHA только при аномальном поведении (не для всех подряд). Сервисы типа Cloudflare Turnstile или hCaptcha можно подключить так: первые N попыток проходят свободно, при превышении порога — запрашивается CAPTCHA. Пользователь не замечает защиты пока не начинает вести себя «подозрительно».
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
lev7399
Сообщения: 5
Зарегистрирован: Чт май 21, 2026 2:15 am

Re: Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение lev7399 »

✔ Лучший ответ — сформирован автоматически
Не забывай про OWASP API4:2023 — Unrestricted Resource Consumption. Защита от брутфорса это часть более широкой темы. Ещё стоит: логировать все неудачные попытки с IP, user-agent, timestamp и отправлять в SIEM или хотя бы в алерты; использовать Have I Been Pwned API для проверки паролей при регистрации (чтобы пользователи не ставили слитые пароли); добавить заголовок `X-Content-Type-Options`, `X-Frame-Options` и убедиться что ответы на неудачный логин не раскрывают существование аккаунта (одинаковый ответ для «нет такого логина» и «неверный пароль»).
👍4 ❤️2 🔥2 😄 🤔
Аватара пользователя
ksenia_dns
Сообщения: 16
Зарегистрирован: Пн май 11, 2026 9:23 pm

Re: Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей

Сообщение ksenia_dns »

Практическая рекомендация по тестированию своей же защиты: используй hydra или ffuf для имитации брутфорса против staging-окружения. Команда `ffuf -w passwords.txt -u https://staging.api/login -X POST -d 'username=admin&password=FUZZ' -fc 200` покажет насколько реально твоя защита работает. Запускай это в CI как часть security-тестов.
👍 ❤️2 🔥1 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Кибербезопасность и пентест»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость