Увы, не все так просто. Существующие модули для ограничения соединений работают не на том уровне обработки запроса.
Более того, ограничением по IP вы порежете сети, которые сидят за NAT-ом.
«What IIS does differently, is in the way it handles incoming requests: There is no static tie between a worker thread and a network socket in IIS. Rather, the workers are organized in a pool where they wait for incoming TCP packets (rather than TCP connections as Apache does). These packets are then assigned dynamically to threads. So, an idle connection occupies a socket, but it does not block an entire thread. Thus the web need not be shut down by penny-wielding customers or slowloris.»
Сразу скажу что с ним не работал, рассказываю только по тому что я понял из статей.
В статьях написано что IIS посылает данные обработчикам не на уровне HTTP запросов, а на уровне сетевых пакетов или группы пакетов. Звучит очень сложно, но, в принципе, реально.
В Apache есть mpm_event, который реализует state machine, но в этом случае не будут работать большинство модулей, в т.ч. mod_php. Все равно придется делать двухуровневую архитектуру.
Хотя чего уж там, сейчас даже нет реализации mod_php для mpm_worker, — только процессы.
Вы не в курсе, есть ли какие-то планы по имплементации accept http фильтров в ядре Линукс аналогично тем что есть в ядре FreeBSD?
Представьте себе 100 000 соединений (пользователей) и в каждом межденно посылаются HTTP запросы. Получаем 100 000 открытых (ESTABLISHED) соединений. А потому как HTTP запрос еще не завершен, никакой информации в access_log не будет.
Не так принципиально. Главное то, чтобы таймаут не сработал (вы его ресетите посылкой данных) и чтобы траффик был маленький. Поскольку траффик маленький, не нужны большие затраты на канал.
Вот и разработчики Apache так говорят, но на самом деле данный тип аттаки гораздо более доступен скрипт-киддисам, чем обычная DDoS атака. В то же время он гораздо дешевле.
Можно сказать что RSnake раскрыл глаза разработчикам Apache и поднял шум вокруг этого. Думаю им придется в ближайшее время заняться таймаутами как минимум.
Я почему-то подумал про ограничение доступа вообще, в том числе те что в httpd.conf.
Более того, ограничением по IP вы порежете сети, которые сидят за NAT-ом.
«What IIS does differently, is in the way it handles incoming requests: There is no static tie between a worker thread and a network socket in IIS. Rather, the workers are organized in a pool where they wait for incoming TCP packets (rather than TCP connections as Apache does). These packets are then assigned dynamically to threads. So, an idle connection occupies a socket, but it does not block an entire thread. Thus the web need not be shut down by penny-wielding customers or slowloris.»
В статьях написано что IIS посылает данные обработчикам не на уровне HTTP запросов, а на уровне сетевых пакетов или группы пакетов. Звучит очень сложно, но, в принципе, реально.
Хотя чего уж там, сейчас даже нет реализации mod_php для mpm_worker, — только процессы.
Вы не в курсе, есть ли какие-то планы по имплементации accept http фильтров в ядре Линукс аналогично тем что есть в ядре FreeBSD?
Скажите, а почему уже существующие «рантаймы» не удовлетворяют?
Cocoa я так понимаю сильно привязана к MacOS?