PDF Imprimer Envoyer

Empêcher le vol de bande passante

Supposons que vous hébergiez sur votre site de nombreuses images ou fichiers multimédia. Régulièrement des sites web vont vouloir les utiliser pour agrémenter leur contenu. Il est d'ailleurs possible que vous fassiez déjà de même avec des images externes. Lorsque vous faites cela avec des fichiers externes vous vous exposez déjà au risque de disparition innoportune du fichier. En effet vous n'avez aucune emprise sur le serveur distant, et il se pourrait que le fichier disparaisse sans que vous le sachiez.

Mais le problème inverse survient également. Si vos images sont copiées sur un site à forte audience, votre serveur sera sans cesse demandé par des internautes externes à votre site.Votre bande passante en sera fortement amoindrie. nous allons donc voir comment prévenir ce genre d'utilisation frauduleuse de votre contenu en utilisant mod_rewrite.

Lorsqu'un navigateur web demande un fichier à un serveur (page web ou image) il affiche la façon dont il est parvenu à cette page. On voit donc apparaitre (dans le header envoyé) les informations de provenances d'un utilisateur (referer). Si votre fichier est demandé de manière directe (sans site web référant, sans referer), alors l'utilisateur vient sur votre site de manière autonome. Si votre fichier est demandé par votre site (le referer sera votre nom de domaine) alors le visiteur est sur une page de votre site et en demande une autre. Par contre, si le referer est externe, soit il demande une page de votre site et il faut l'afficher (un visiteur en plus), soit il demande un fichier d'un autre type, et là il faut lui refuser le fichier.

Le Code de prévention de "hotlinking"

Pour cette exemple on vérifie uniquement les fichiers de type image, que l'on renvoie vers une image "interdit.gif" qui s'affiche uniquement si l'image est "pompée" par un autre site web.  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 %{HTTP_REFERER} !^$
   RewriteCond %{HTTP_REFERER} !votre_site.fr

   RewriteRule \.(gif|jpg|jpeg|png)$ interdit.gif [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 les informations envoyées par le navigateur. Le HTTP_REFERER indique la provenance de la demande. La dernière ligne permet de rediriger les pompeurs vers l'image interdit.gif.

Remarque

Il existe cependant de multiples façons de modifier le referer envoyé par le navigateur. Cette astuce ne protégera donc pas efficacement vos fichiers privés.

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

Ajouter un Commentaire


Code de sécurité
Rafraîchir