Bloquer par UserAgent ou vide referer

Un bot étranger (GbPlugin) codifie les URL des images et provoque l'erreur 404.
J'ai essayé de bloquer le bot sans succès dans le bas de mon .htaccess, mais il ne fonctionne pas.

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

Le journal ci-dessous.

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"

Désolé pour mes erreurs de langue

24
demandé sur Keyur Shah 2011-09-10 19:02:12

3 réponses

Voici ce que vous pouvez mettre dans votre .fichier 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

Cela retournera:

HTTP request sent, awaiting response... 403 Forbidden
2011-09-10 11:15:48 ERROR 403: Forbidden.
23
répondu Book Of Zeus 2011-09-10 15:29:34

Puis-je recommander cette méthode:

Mettez ceci est .htaccess dans la racine de votre site.

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)$

Sont les deux useragents que je voulais bloquer dans cet exemple de cas.

Vous pouvez utiliser regex donc un useragent comme

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

Pourrait être

Mozilla.*Firefox\/40.0

^signifie match du début et $ à la fin afin que vous puissiez bloquer un seul useragent avec:

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

Ou en ajouter plusieurs en utilisant le caractère | pour les séparer à l'intérieur ( et) comme dans le premier exemple.

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

Vous pouvez le tester en mettant votre useragent dans le code et ensuite essayer d'accéder au site. http://whatsmyuseragent.com/

2
répondu Don King 2015-09-26 18:35:16

Pour bloquer les référents vides, vous pouvez utiliser la règle suivante :

RewriteEngine on

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

Cela interdira toutes les requêtes à votre site si HTTP_REFERER valeur est vide ^$.

Pour bloquer les agents utilisateurs, vous pouvez utiliser

RewriteEngine on

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

Cela interdira toutes les requêtes à votre site si HTTP_USER_AGENT correspond au modèle de Condition.

0
répondu starkeen 2016-06-22 04:32:16