Блокировать с помощью useragent или пустого реферирования
Незнакомый бот (GbPlugin) кодирует URL-адреса изображений и вызывает ошибку 404.
Я попытался заблокировать бота без успеха с этим в нижней части моего .htaccess, но это не сработало.
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^GbPlugin [NC]
RewriteRule .* - [F,L]
Запишите это ниже.
201.26.16.9 - - [10/Sep/2011:00:06:05 -0300] "GET /wp%2Dcontent/themes/my_theme%2Dpremium/scripts/timthumb.php%3Fsrc%3Dhttp%3A%2F%2Fwww.example.com%2Fwp%2Dcontent%2Fuploads%2F2011%2F08%2Fmy_image_name.jpg%26w%3D100%26h%3D65%26zc%3D1%26q%3D100 HTTP/1.1" 404 1047 "-" "GbPlugin"
Извините за ошибки моего языка
Ответы
Ответ 1
Здесь вы можете поместить файл .htacces
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
SetEnvIfNoCase Referer "^$" bad_user
SetEnvIfNoCase User-Agent "^GbPlugin" bad_user
SetEnvIfNoCase User-Agent "^Wget" bad_user
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_user
SetEnvIfNoCase User-Agent "^EmailWolf" bad_user
SetEnvIfNoCase User-Agent "^libwww-perl" bad_user
Deny from env=bad_user
Это вернет:
HTTP request sent, awaiting response... 403 Forbidden
2011-09-10 11:15:48 ERROR 403: Forbidden.
Ответ 2
Могу ли я рекомендовать этот метод:
Поместите это .htaccess в корневой каталог вашего сайта.
ErrorDocument 503 "Your connection was refused"
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC]
RewriteRule .* - [R=503,L]
Где
^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$
- два пользовательских агента, которые я хотел заблокировать в этом примере.
Вы можете использовать регулярное выражение так, чтобы useragent вроде
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
может быть
Mozilla.*Firefox\/40.0
^ означает соответствие от начала и $до конца, поэтому вы можете заблокировать только один пользовательский аккаунт с помощью
ErrorDocument 503 "Your connection was refused"
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*Firefox\/40.0$ [NC]
RewriteRule .* - [R=503,L]
Или добавьте несколько, используя | для разделения их внутри (и), как в первом примере.
RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC]
Вы можете протестировать его, поместив ваш useragent в код, а затем попытайтесь получить доступ к сайту. http://whatsmyuseragent.com/
Ответ 3
Чтобы заблокировать пустые ссылки, вы можете использовать следующее правило:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$
RewriteRule ^ - [F,L]
Это запретит все запросы на ваш сайт, если значение HTTP_REFERER
пустое ^$
.
Чтобы заблокировать пользовательские агенты, вы можете использовать
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} opera|firebox|foo|bar [NC]
RewriteRule ^ - [F,L]
Это запретит все запросы на ваш сайт, если HTTP_USER_AGENT
соответствует шаблону Condition.