Подтвердить что ты не робот

Блокировать с помощью 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"

Извините за ошибки моего языка

4b9b3361

Ответ 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.