IS> Так как атака делается обычными браузерами, то большинство из них
IS> выставляет заголовок "Referer". Поэтому можно проверять этот заголовок
IS> mod_rewrite'ом для тяжёлых урлов. В случае, если реферер есть
IS> и он не совпадает с нашим сайтом или с разрешенными сайтами (например,
IS> поисковиками), то выдавать пустой ответ или редирект туда, откуда пришёл.
Спасибо за идею!
Её можно реализовать и без mod_rewrite:
SetEnv we_under_atack no
SetEnvIf Referer bad-site\.com we_under_atack=yes
PassEnv we_under_atack
и в скриптах проверять переменную we_under_atack.
А что можно предпринять заранее? Вот например с фильтрация запросов,
идущих к медленным скриптам с подобным в заголовке
Accept: image/gif, image/jpeg, */*
, т.е. только image/* и */*
Или вообще пропускать только те запросы, у которых в Accept стоит
только */* или есть подстрока text/html
SetEnv we_under_atack yes
SetEnvIf Accept "^*/*$" we_under_atack=no
SetEnvIf Accept text/html we_under_atack=no
PassEnv we_under_atack
Или так лучше не поступать, т.к. может привести к потере посетителей?
С уважением,
Монашёв Михаил, SoftSearch.ru
ICQ# 166233339
http://softsearch.ru/
Без бэкапа по жизни.