В течение последних нескольких дней один из моих сайтов получал сотни запросов в минуту с несуществующими случайными доменами как HTTP_REFERER
и с разных IP-адресов (поэтому используя deny from IP
не вариант):
REMOTE_ADDR | HTTP_REFERER | HTTP_USER_AGENT
95.133.126.178 | 1dljlc2jm2.info | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)
188.232.31.38 | 3r28169e6v4.net | Mozilla/5.0 (compatible; ShunixBot/1.x; http://www.7vlc8pngqk7zmx.com/bot.htm)
177.184.135.114 | 3p10jjujbn.ru | Mozilla/5.0 (compatible; Bot; +http://w4n2e2mte8.ws/spamfilter
188.235.184.231 | 06d94hx.biz | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iRider 2.21.1108; FDM)
42.119.240.12 | ho0gg8r7.net | Mozilla/3.0 (WorldGate Gazelle 3.5.1 build 11; FreeBSD2.2.8-STABLE)
...
Есть идеи, как с этим бороться, пожалуйста?
ОБНОВИТЬ (после успешного решения проблемы)
Мой вопрос не повторяется для Я под DDoS. Что я могу сделать? потому что я знал "что происходит" (небольшая DDoS-атака), поэтому я попросил добавить точные правила в .htaccess
заблокировать злоумышленников.
Кстати, здесь Я под DDoS. Что я могу сделать? предлагается связаться с хостинг-провайдером. Я сделал это, но мой хостинг-провайдер (один из самых популярных) предложил купить более дорогой пакет с дополнительными ресурсами. :)
Froggizс решение было именно то, что я искал.
это правила, чтобы заблокировать ваших атакующих
# Block request if not empty or not start with http
RewriteCond %{HTTP_REFERER} "!^$|^http"
# Block request rule
RewriteRule .* - [F]
Я добавил еще несколько правил для блокировки других ботов:
# Block empty user agent, and suspect user agen
RewriteCond %{HTTP_USER_AGENT} ^-?$|perl|python|\\x.*?\\x [NC,OR]
# Limit request to GET POST and HEAD
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST)$ [OR]
# Block request who doesn't start with / as it should for normal web sites
RewriteCond %{REQUEST_URI} !^/ [OR]
# Block request if not empty or not start with http
RewriteCond %{HTTP_REFERER} "!^$|^http"
# Redirect to 406 page
RewriteRule .* - [END,R=406]
Я использую код 406 (неприемлемо) в качестве кода ответа, но это необязательно, это может быть все, что вы хотите, например [F], как предложено apache doc
https://httpd.apache.org/docs/2.4/en/rewrite/access.html
Если вы используете другое правило перезаписи (например, короткий URL-адрес), вам необходимо разместить правило, которое я опубликовал ранее, чтобы оно использовалось в первую очередь