PDF Imprimer Envoyer

Rediriger les pirates et leur empêcher l'accès à votre site

 

Votre site fait l'objet d'attaques multiples? Un utilisateur lance un nombre trop conséquent de requêtes et vous désirez lui interdire l'accès? Mod_Rewrite permet de rediriger les visiteurs en fonction de leur adresse IP. En déterminant les adresses à rediriger vous affecterez donc un comportement dédié pour votre serveur : les pirates-> dehors, et les autres->bienvenue.


Le Code de redirection en fonction d'une adresse IP

Dans cet exemple simple, on utilise juste une RewriteCond pour tester l'adresse IP du visiteur. Bien sûr on peut ajouter plusieurs adresses IP à la suite, pour rediriger plusieurs visiteurs.  Ce code est à placer dans le fichier .htaccess. Si vous arrivez sur cette page par un moteur de recherche et que vous n'êtes pas familier avec la ré-écriture d'URL, je vous conseille de consulter l'article d'introduction à l'URL Rewriting.

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteCond %{REMOTE_ADDR} ^84\.100\.56\.146 [OR]
   RewriteCond %{REMOTE_ADDR} ^88\.122\.34\.118
   RewriteRule ^(.*)$ http://www.votre_site.com/page_bannissement.php [R=307,L]

<
/IfModule> 

L'encapsuleur  <IfModule mod_rewrite.c> nous permet d'utiliser les instructions uniquement si mod-rewrite est activé sur votre serveur.Les trois premières lignes sont classiques et sont documentées dans l'article d'introduction. On permet juste au .htaccess de lancer le module de réécriture.

Ensuite on vérifie l'adresse IP envoyée par le navigateur. Le REMOTE_ADDR permet de récupérer cette adresse. Dans l'exemple, on a indiqué deux conditions, séparées par le flag [OR]. Cela vous évite d'avoir à indiquer autant de RewriteRule que de RewriteCond.

Rediriger automatiquement les pirates

Pour les programmateurs web, il est possible d'utiliser cette fonctionnalité automatiquement avec des scripts sur vos pages. En guise d'exemple, on pourrait imaginer un utilisateur qui demande des URL "potentiellement dangereuses" ... c'est-à-dire qu'il essaye d'injecter du code sur votre site. Ces comportements se remarquent facilement en analysant les chaînes de caractères demandées dans l'URL. Avec votre script php vous ajouterez donc l'adresse du coupable aux RewriteCond du .htaccess et celui-ci n'aura plus accès au site web.

Vous pouvez de plus ajouter des commentaires (grâce au caractère dièse # avant le texte commentaire) pour expliquer les raisons et la date d'ajout de l'exception : 

RewriteCond %{REMOTE_ADDR} ^88\.122\.34\.11 #10/05/08 : injection url

Remarque : 

Je préfère annoncer sur ma page de 'banissement' que les visiteurs y sont redirigés à cause de leur adresse IP. Je mets à la suite un formulaire de débloquage (avec Captcha) qui permet de demander le retrait l'adresse IP de la liste. Ce retrait est fait manuellement en fonction de la date d'ajout (si l'adresse a été ajoutée il y a plus d'une semaine, il est fort possible que l'adresse IP ne corresponde plus au pirate).

Mise à jour le Dimanche, 09 Novembre 2008 12:42
 

Ajouter un Commentaire


Code de sécurité
Rafraîchir