Атаки отказа в обслуживании являются распространенной угрозой, которую следует учитывать при размещении веб-сайта в Интернете. Хотя большинство уязвимостей безопасности можно предотвратить, избегая опасных привычек / методов кодирования, защита DOS требует другого подхода.
В частности, меня не очень волнуют сложные спамеры в сети с дорогим оборудованием (возможно, превосходящим мое), которые примут оплату за удаление сайтов. Я не могу себе представить, чтобы кто-то заплатил бы такую сумму, просто чтобы немного повредить мой сайт. Что меня больше всего беспокоит, так это «ленивые атаки», которые могут быть предприняты умными подростками, которые хотят проверить свои разрушительные силы на не подозревающих сайтах, особенно теми, кто слышал о моем сайте и проектах через хакатоны и события.
Эти «ленивые атаки» чрезвычайно дешевы и просты в исполнении и могут принимать форму простого скрипта браузера или программы-флудера, которая отправляет подавляющее количество запросов на серверы моего сайта. Мощная система (например, мой выделенный сервер) может быть сломлена только слабой системой (например, сценарий с легкими ресурсами), используя слабые места в более мощной системе и используя ее возможности для работы против себя.
В частности, я имею в виду, когда один и тот же пользователь постоянно делает запросы к серверу, которые почти не требуют усилий. Если соотношение используемых ресурсов сервера и используемых ресурсов клиента превышает, по крайней мере, соотношение доступных ресурсов сервера и клиента, мой сайт может быть очень легко удален.
if (Server Resources : Client Resources > Server Power : Client Power)
{
ServerDown();
}
Я спрашиваю не о том, как сделать доказательство DOS для моего сайта Apache, а о том, как это сделать. менее уязвимы к дешевым, ленивым атакам DOS, блокируя количество запросов, которые один клиент может отправить за определенный промежуток времени, прежде чем рассматривать его как злоумышленника. Это особенно относится к сценариям php и другим страницам, которым требуется больше ресурсов для передачи контента клиенту.
Каков наилучший подход (таблица запретов mysql, настройки Apache, honeypot и т. Д.) Для защиты относительно небольшого сайта от дешевых DOS-атак?
Задача ещё не решена.
Других решений пока нет …