Проблема, которую нужно было решить
Если вы когда-либо запускали API, то знаете эту ситуацию: сегодня все работает отлично, а завтра приходят уведомления о попытках SQL-инъекций, межсайтового скриптинга или обхода путей. Обычно добавление безопасности означает переписывание промежуточного ПО, интеграцию тяжелых SDK или оплату корпоративных тарифов за веб-приложения.
Большинство небольших команд и независимых разработчиков не имеют выделенного инженера по безопасности. Облачные решения вроде Cloudflare или корпоративные WAF взимают более $20 в месяц только за пользовательские регулярные выражения. Добавление промежуточных обработчиков ко всем маршрутам приводит к накоплению технического долга и усложняет развертывание. Моделирование и кэширование требуют отдельных инструментов.
Мне хотелось чего-то простого, прозрачного и бесплатного, что просто работает сразу после установки и не привязывает вас к конкретному поставщику.
Как устроен Backport
Архитектура Backport проста:
graph LR
Client -->|HTTPS| Proxy[Backport Proxy]
Proxy -->|WAF + Rate Limit + Cache| Backend[Ваш API]
Proxy -->|Transform/Mock| Client
Клиент отправляет запрос через прокси-сервер Backport, который проверяет заголовки, применяет правила WAF и ограничения скорости запросов. Если запрос чистый, он перенаправляется вашему бэкэнду. Ответ проходит через слой преобразования и кэширования перед возвратом клиенту.
Время обработки запроса составляет менее 5 мс на запрос. Шлюз построен для обеспечения высокой производительности и надежной защиты.
Ключевые особенности
Защита от угроз
Встроенный WAF защищает от 17 типов атак, включая SQL-инъекции, XSS, обход путей и другие угрозы.
Пользовательские правила
Вы можете создавать собственные правила регулярных выражений для обнаружения угроз абсолютно бесплатно.
Ограничение частоты запросов
Используется скользящее окно со скоростью от 100 до 5000 запросов в минуту в зависимости от плана.
Кэширование
Автоматическое кэширование ответов GET-запросов с временем жизни 5 минут и объемом хранилища 1000 записей.
Имитация API
Позволяет определять фиктивные конечные точки для разработки фронтенда или при недоступности бэкэнда.
Трансформация ответов
Добавляйте, удаляйте поля или переименовывайте ключи прямо во время выполнения.
Идемпотентность
Поддержка заголовков Idempotency-Key для безопасного повторения запросов.
Быстрый старт
Просто укажите ваш клиент на прокси вместо вашего бэкэнда:
curl https://backport.in/proxy/users \n-H "...