Технический разборSecurity
23 мая 2024 г.9 мин

Защита API: Rate Limiting, CORS и JWT

Базовые гигиенические минимумы для любого публичного API: как не дать положить сервер брутфорсом.
Иван Кавальков
Основатель Smart Creative Group
Короткий ответ по статье

Суть без длинного чтения

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

Коротко

О чем статья

Базовые гигиенические минимумы для любого публичного API: как не дать положить сервер брутфорсом.

Когда актуально

В какой момент это становится проблемой

Повод разбираться глубже появляется, когда у продукта есть внешние API, несколько ролей доступа, чувствительные данные или частые релизы без понятного контура контроля.

Следующий шаг

Что делать после прочтения

Проверим API, права доступа, release-процесс и эксплуатационный контур, чтобы вы получили приоритизацию рисков и понятную первую очередь работ.

#01Хранение JWT токенов

Никогда не храните JWT (Access токен) в LocalStorage! Это прямая дорога к XSS уязвимостям — любой вредоносный скрипт на сайте сможет украсть сессию пользователя.

Правильный путь: Отправлять токен в куках с флагами HttpOnly, Secure и SameSite=Strict. Тогда JavaScript не будет иметь к ним доступа.

#02Rate Limiting (Троттлинг)

Защита от брутфорса паролей и DDoS на уровне приложения. В NestJS это делается пакетом @nestjs/throttler. Мы жестко лимитируем эндпоинты авторизации (например, не более 5 попыток в минуту с одного IP).

#03IDOR уязвимости

Insecure Direct Object Reference. Если у вас есть роут /api/orders/123, вы обязаны проверить, принадлежит ли заказ №123 текущему авторизованному пользователю. Иначе кто угодно сможет перебрать ID и скачать чужие данные.

Редакционная проверка и источники

Материал подготовлен как практический разбор и привязан к рабочим сценариям бизнеса, а не к абстрактной теории.

Ревью материала
Техническая редакция SmartCG
Архитектурное и редакционное ревью
Последнее обновление
23 мая 2024 г.
Как готовили материал
Материал подготовлен на основе проектной практики SmartCG, редакционного ревью и сопоставления с официальной документацией по теме.
Источники и подтверждающие материалы
Продолжение темы

Что ещё посмотреть по этой задаче

Ниже материалы, которые помогают перейти от общего понимания проблемы к более предметному следующему шагу.

Как перевести статью в следующий шаг

Куда идти после прочтения

Здесь не теория ради теории. Ниже собрали, какая услуга чаще всего решает похожую задачу на практике и какой кейс стоит открыть, если хотите быстро понять формат результата.

Релевантная услуга

Технический аудит и план стабилизации web-проекта

от 1 200 BYN
support

Аудит текущего web-проекта с картой рисков, приоритетами и планом первой очереди.

Быстрый разбор ситуации

Становится понятно, что именно нужно проверить в первую очередь: продукт, интеграции, инфраструктуру или работу подрядчиков.

Карта рисков и приоритетов

Вы получаете список проблем по критичности: что уже бьёт по выручке и стабильности, а что можно оставить на второй этап.

Практическое продолжение статьи

Нужен security-разбор, который заканчивается не списком страшилок, а реальным планом исправлений?

Проверим API, права доступа, release-процесс и эксплуатационный контур, чтобы вы получили приоритизацию рисков и понятную первую очередь работ.

Рекомендуемая услуга SmartCG

Технический аудит и план стабилизации web-проекта

от 1 200 BYN
support

Аудит текущего web-проекта с картой рисков, приоритетами и планом первой очереди.