⚓ Как заблокировать нежелательные User-Agent & источники в Apache, Nginx и WordPress? |

⚓ Как заблокировать нежелательные User-Agent & источники в Apache, Nginx и WordPress?

Мануал

Заблокируйте все ненужные запросы, которые вы видите в логах

Я предполагаю, что вы просмотрели журналы посещений вашего сайта и сыты по горло этими нежелательными запросами.

Они могут быть не обязательно плохими или спамовыми, но это никак не сможет повысить ценность бизнеса.

Представьте, что большинство обращений происходит через нежелательного пользовательского агента или рефереров, и вы думаете, что ваш сайт получает хороший трафик, но на самом деле они бесполезны.

Лучший способ управлять ими – остановить их на границе, например, сетевых устройств, балансировщика нагрузки, брандмауэра или CDN.

Но я понимаю, что это может оказаться невозможным для личного блога или небольших веб-сайтов, и вы можете заблокировать их на более низком уровне, например, веб-серверы, WordPress и т. д.

Я надеюсь, что у вас уже есть список рефереров и пользовательских агентов, которые вы хотите заблокировать. Начнем.

Рекомендуется сделать резервную копию файла конфигурации перед изменением, чтобы можно было выполнить откат, если что-то пойдет не так.

Nginx

Nginx работает на миллионах сайтов и очень популярен среди веб-хостинга.

Если вы используете Nginx, то вот как вы можете их остановить.

Допустим, вы получаете много автоматических запросов со следующим пользовательским агентом, и вы решили заблокировать их.

  • java
  • curl
  • python
if ($http_user_agent ~* "java|curl|python") {
    return 403;
}

Если вы хотите, чтобы те куда-то перенаправляли, то:

if ($http_user_agent ~* "java|curl|python") {
    return 301 https://yoursite.com;
}

Вышеуказанная конфигурация должна находиться под блоком сервера.

И далее заблокируем по реферерам.

Следующий пример, для блокировки запросов от semalt.com, badsite.net, example.com.

if ($http_referer ~ "semalt\.com|badsite\.net|example\.com")  {
  return 403;
}

После внесения необходимых изменений вам нужно сохранить файл и перезапустить Nginx, чтобы применить эффекты.

Чтобы перезапустить Nginx, вы можете использовать:

service nginx restart

Apache HTTP

Чтобы заблокировать user-agent в Apache, вы можете использовать модуль mod_rewrite.

Убедитесь, что модуль включен, а затем добавьте следующее в файл .htaccess или соответствующий файл .conf.

Если у вас настроено несколько сайтов и вы хотите заблокировать определенный URL-адрес, вы можете разместить их в соответствующем разделе VirtualHost.

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} badcrawler [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badspider [NC]
RewriteRule . - [R=403,L]

Приведенное выше правило блокирует любой запрос, содержащий user-agent как badcrawler, badbot и badspider.

И нижеприведенный пример для блокировки по имени реферера BlowFish, CatchBot, BecomeBot.

RewriteEngine on
RewriteCond %{HTTP_REFERER} blowfish|CatchBot|BecomeBot [NC]
RewriteRule . - [R=403,L]

Как обычно, перезапустите сервер Apache и проверьте результаты.

WordPress

Если вы используете WordPress на общедоступном хостинге или у вас нет доступа к конфигурации веб-сервера или вам неудобно изменять файл, вы можете использовать плагин WP.

Существует множество плагинов безопасности WP, и одним из самых популярных для блокировки плохих ботов является Blackhole for Bad Bots.

Заключение

Я надеюсь, что приведенные выше советы помогут вам остановить это поведение.

Если вы ищете всеобъемлющую защиту, вы можете также рассмотреть возможность использования облачных WAF, таких как Astra или SUCURI.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий