Что мне лично нравится делать, так это управлять доступом через брандмауэр, а не через веб-сервер. Использование IPTABLES (только для Linux), чтобы предотвратить запуск отдельных IP-адресов более чем на указанное количество соединений. Это метод проб и ошибок, так как вам нужно правильно рассчитать его, но в целом это должно предотвратить скорость соединения злоумышленника
iptables -A INPUT -p TCP --dport 80 -m state --state NEW -j STOP-ABUSE
iptables -A STOP-ABUSE -m recent --set
iptables -A STOP-ABUSE -m recent --update --seconds 10 --hitcount 3 -j DROP
mod_cband также довольно хорош (хотя я перестал его использовать и оставил его только для брандмауэра, как описано выше), я считаю, что сочетание двух подходов приведет к удовлетворительным результатам.
Кроме того, я бы посоветовал вам взглянуть на mod_throttle и описать его по ссылке.
Надеюсь, это поможет вам
UPDATE:
Как упоминалось в моем комментарии, брандмауэр и mod_throttle доступны только при наличии доступа к ним. Как вы упоминали, вы, похоже, находитесь в общей среде, поэтому у вас, скорее всего, не будет доступа к брандмауэру. Хотя кое-что можно сделать.
Вы можете включить mod_deflate (уточните у своего хоста, доступен ли он первым), а также избежать горячих ссылок (то есть других сайтов, использующих ваши ресурсы, такие как изображения и JS). Пример этого:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [F]