jeudi 31 décembre 2009

Protéger les images de son site web

Il n'y a rien de plus embêtant de ce faire piquer une image et de la retrouver sur un autre site web. C'est encore plus gênant lorsque la personne qui a subtiliser l'image ne prend même pas la peine de recopier l'image sur son propre serveur et fais un lien direct vers votre serveur. C'est ce que l'on appel le "hotlink".
Voici donc une petite astuce pour protéger les images de votre site web du hotlinking. Tout va se jouer au niveau du .htaccess et de la réécriture d'URL. Il vous suffit d'ajouter ces quelques lignes sous la ligne RewriteEngine On :

RewriteEngine On
#Protection des images
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?votre-domaine.fr/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?votre-domaine2.fr/.*$ [NC]
ReWriteRule .*\.(gif|png|jpe?g)$ - [F]
Dans cet exemple, seul les domaine "votre-domaine.fr" et "votre-domaine2.fr" peuvent afficher les images hébergé sur votre serveur. La régle ce lis ainsi :
pour tous domaines différents de "votre-domaine.fr" et "votre-domaine2.fr" les URI se terminant par .gif ou .png ou .jpg ou .jpeg recevront une erreur 403 ( c'est ce que signifie [F] Forbidden)
Maintenant on est pas obliger de renvoyer une erreur de type 403. Mais on peux par exemple renvoyer une images par défaut, ou pointer vers un script PHP qui ajoute un watermark sur l'image. Pour celà il suffit de modifier la dernière ligne par :

#redirection lien vers une images
ReWriteRule .*\.(gif|png|jpe?g)$ http://www.votre-domaine.fr/images/hotlink.png [R,NC]
#redirection lien vers une images
ReWriteRule (.*\.(gif|png|jpe?g))$ http://www.votre-domaine.fr/watermark.php?src=$1 [NC]
Voilà, je vous expliquerais une autre fois la manipulation des images en php pour ajouter le watermark. En attendant, Google est votre ami.

0 commentaires: