[Перевод] Пограничные случаи HTTP, которые должен понимать каждый разработчик API
В феврале прошлого года у интерфейса веб-серверов Rack, лежащего в основе практически каждого приложения Ruby on Rails, был обнаружен CVE-2024-26141. Уязвимость была простой: достаточно отправить запрос файла с сотней байтовых диапазонов, и Rack генерировал неожиданно большой ответ. Серверы продакшена можно было атаковать одиночными HTTP-запросами, пока у них не закончится ресурс памяти или канала.
Усугубляло ситуацию то, что баг затронул широкий диапазон версий: от 1.3.0 и выше; это означало, что уязвимыми оказались приложения, которые писали с 2011 года. Многие разработчики тратили все свои выходные на установку патчей.
Это пример того, как простой неправильно обрабатываемый пограничный случай HTTP может нанести существенный ущерб. И не потому, что мы плохие разработчики, а потому, что HTTP сложен. В идеальном случае всё работает замечательно. Но потом наступает продакшен.
Читать далееИсточник: Хабрахабр
Похожие новости
- DNSSEC validation на Go: написал свой validator и не до конца сошёл с ума
- (Не)безопасный eBPF: что маркетологи забыли упомянуть об уязвимостях
- Острова и несколько личностей на одном устройстве: как мы делаем приватность частью архитектуры
- Reset — прохождение сложной машины от Tryhackme
- bitkogan: Срок Набиуллиной заканчивается. Что дальше?
- Блог ленивого инвестора: ☀ Итоги недели: входим в лето!
- Редакция Spark.ru: 60 лет “культурной революции”
- Spark_news: Самые большие штрафы ГИБДД платят зумеры
- OpenBSD 7.9: поддержка Wi-Fi 6, USB4 и 255 ядер. Основные изменения в ОС
- Zero Trust для AI-агентов: как безопасно давать LLM доступ к инструментам, данным и действиям