2011-09-10 17 views
24

Un extraño bot (GbPlugin) codifica las URL de las imágenes y provoca el error 404.
Intenté bloquear el bot sin éxito con esto en la parte inferior de .htaccess, pero no lo hice no funcionaBloque por useragent o referer vacío

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/ 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_USER_AGENT} ^$ [OR] 
RewriteCond %{HTTP_USER_AGENT} ^GbPlugin [NC] 
RewriteRule .* - [F,L]  

El registro a continuación.

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" 

Lo siento por mis errores lingüísticos

+0

"Causing errir 404": ¿para ellos? Pero ¿por qué te deberia importar? – Raedwald

Respuesta

23

Esto es lo que puede poner en sus .htacces archivo

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 

Esto devolverá:

HTTP request sent, awaiting response... 403 Forbidden 
2011-09-10 11:15:48 ERROR 403: Forbidden. 
+0

Ok, gracias. Cargando ahora. Informaré el resultado. Vera – Vera

+7

Una manera fácil y fácil de probar es usar wget. Esto es lo que dijo el regreso cuando logré mi sitio. –

+0

Esta línea bloquea los accesos a través del acceso externo Facebbok: '5092" - "" facebookexternalhit/1.0 (+ http: //www.facebook.com/externalhit_uatext.php) "', useragent está vacío. Eliminé esta línea y volví a probar – Vera

2

Puedo recomendar este método:

Ponga esto es .htaccess en la raíz de su sitio.

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] 

Dónde

^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ 

son los dos AgentesDeUsuario que quería bloquear en este caso de ejemplo.

Puede utilizar expresiones regulares por lo que un agente de usuario como

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 

podría ser

Mozilla.*Firefox\/40.0 

^significa partido de principio y $ hasta el final por lo que podría bloquear un solo agente de usuario con:

ErrorDocument 503 "Your connection was refused" 
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*Firefox\/40.0$ [NC] 
RewriteRule .* - [R=503,L] 

O agregue varios utilizando | personaje para separarlos dentro (y) como en el primer ejemplo.

RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC] 

Puede probarlo poniendo su agente de uso en el código y luego intente acceder al sitio. http://whatsmyuseragent.com/

0

Para bloquear referers vacías, puede utilizar la siguiente regla:

RewriteEngine on 

RewriteCond %{HTTP_REFERER} ^$ 
RewriteRule^- [F,L] 

Este prohibirá todas las peticiones a su sitio si HTTP_REFERER valor está vacío ^$.

Para bloquear las aplicaciones de usuario, puede utilizar

RewriteEngine on 

RewriteCond %{HTTP_USER_AGENT} opera|firebox|foo|bar [NC] 
RewriteRule^- [F,L] 

Esto prohibir todas las peticiones a su sitio si HTTP_USER_AGENT coincide con el patrón Estado.