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
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.
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]
Où
^(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/
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.