PDA

Voir la version complète : Interdire le vole d'images


JalaL
15/02/2004, 09h29
Salut
Je voudrais savoir s'il y a une methode pour eviter que des sites volent des images de mon site et utiliser mon quota gratuitement. Je sous entend par le vole utiliser mes images directement dans leurs balises <img>. Quelque chose a mettre dans .htaccess ?
Moeci pour toute reponse.

angelik
15/02/2004, 10h33
je ne pense pas qu'il exist eune possibilite.
tu peux les mettre ne flash, et encore "impr ecran" est tres simple pour recuperer les images...

a+

kakou
15/02/2004, 12h20
non il veut dire que des sites font des liens directs vers ses images et lui volent donc de la bande passante...
Ben penche toi du coté des scripts perl, php, asp, etc...
il existe des scripts anti leech que tu dois pouvoir adapter facilement sur tes images...

en fait tu utiliseras des liens du type tonsite.com/antileech.pl?IMG0001

dans le script y aura un systeme qui dira en gros:
"Si l'adresse de la page ou on m'appelle n'est pas tonsite.com, j'affiche une image noire"

et il faudra bien évidement ne pas mettre les images dans le répertoire "images" qui serait trop simple a retrouver, mais dans un répertoire de type "lmjjdsjfsfer" ;)

L.Boggio
15/02/2004, 12h40
JalaL écrivait :
Salut
Je voudrais savoir s'il y a une methode pour eviter que des sites volent des images de mon site et utiliser mon quota gratuitement. Je sous entend par le vole utiliser mes images directement dans leurs balises <img>. Quelque chose a mettre dans .htaccess ?
Moeci pour toute reponse.
Pour éviter le direc-link, tu peux utiliser un système basé sur ton .htaccess. Si le referer n'est pas une page de ton site, tu retournes autre-chose que l'image (une redirection sur une autre image qui contient un message du genre 'Ce site utilise mes images sans mon consentement'.
Ca ne baissera pas le nombre de hits, car de toute façon, une image est demandée, mais par-contre, ça décrédibilise le site 'voleur'

JalaL
15/02/2004, 13h15
Je me suis peut etre mal exprimé.
Le vole d'image ne me derange pas du moment où le mec les copie chez lui. Mais je n'accepterai pas que quelqu'un utilise les images hebergées chez moi pour illistrer son site en mettant par exemple <img src="http://www.monsite.com/image.jpg"> dans le sien.
J'avais lu quelque chose sur Apache qui permet justement d'interdir ce genre de choses, une petite formule qu'on ajoute dans httpd.conf
Ca permet au serveur d'ignorer la requete de ce mec... c'est d'ailleurs utilisé par Tripod (hebergeur gratuit) pour envoyer le logo de Tripod au lieu de l'image requise.

referer ma_forumule_blabla
<je sais plus> #ou peut etre VirtualHost je me rappelle plus
....
....
order deny,allow
allow from referer
</je sais plus>

Je me demande si ca peut se faire (et comment) avec des .htaccess


P.S.
Ca prend une demi journée pour valider les posts :(

Julien2222
15/02/2004, 13h46
à mettre dans le .htaccess :

SetEnvIfNoCase Referer "^http://www.monsite.com/" local_ref=1 <FilesMatch ".(gif|jpg)"> Order Allow,Deny Allow from env=local_ref </FilesMatch>

C'est tiré de l'article : http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS

angelik
15/02/2004, 15h31
kakou écrivait :
non il veut dire que des sites font des liens directs vers ses images et lui volent donc de la bande passante...
Ben penche toi du coté des scripts perl, php, asp, etc...
il existe des scripts anti leech que tu dois pouvoir adapter facilement sur tes images...

en fait tu utiliseras des liens du type tonsite.com/antileech.pl?IMG0001

dans le script y aura un systeme qui dira en gros:
"Si l'adresse de la page ou on m'appelle n'est pas tonsite.com, j'affiche une image noire"

et il faudra bien évidement ne pas mettre les images dans le répertoire "images" qui serait trop simple a retrouver, mais dans un répertoire de type "lmjjdsjfsfer" ;)

oui desolee j'ai lu trop vite...
a+

JalaL
16/02/2004, 01h54
Julien2222 écrivait :
à mettre dans le .htaccess :

SetEnvIfNoCase Referer "^http://www.monsite.com/" local_ref=1 <FilesMatch ".(gif|jpg)"> Order Allow,Deny Allow from env=local_ref </FilesMatch>

C'est tiré de l'article : http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS
Merci pour l'astuce.
L.Boggio écrivait :
Ca ne baissera pas le nombre de hits, car de toute façon, une image est demandée, mais par-contre, ça décrédibilise le site 'voleur'
Quand le 'voleur' s'apperçoit qu'il n'a pas le droit de le faire et que ca marche pas en tout cas il va cesser... donc je vais regagner mes hits :)

P.S.
Pourriez-vous vous passer de la validation des messages ?

Mambourg
17/02/2004, 21h32
Avec le mod_rewrite (Apache) =>

Tu crèes un fichier .htaccess que tu places à la racine de tes photos.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.mambourg-charleroi.be/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mambourg-charleroi.net/.*$ [NC]
ReWriteRule .*\.(gif|png|jpg)$ - [F]

Ce sont des conditions en fait. En regardant bien, les URL placées autorisent l'affichage de l'image sur le site en question, sinon l'image ne peut s'afficher.
(gif|png|jpg) sont les formats traités.

@+ ;o)

David.A
17/02/2004, 23h24
merci pour le tuyau, ça marche bien, m'en souviendrai

JalaL
18/02/2004, 09h44
Mambourg écrivait :
Avec le mod_rewrite (Apache) =>

Merci beaucoup ca a très bien marché.
Sauf que chez OVH les hits sont quand meme comptés. Donc il vaudra mieux envoyer un logo ou autre chose a cette personne... ca fait de la pub gratis.


J'ai trouvé :)
Il faut tout simplement remplacer
ReWriteRule .*\.(gif|png|jpg)$ - [F]
Par
ReWriteRule .*\.(gif|png|jpg)$ http://www.tonsite.com/chemin/vers/ton_logo.gif [R]
Ca leur donnera une leçon :D

outrefranc
18/02/2004, 11h36
Très bon truc, merci de l'avoir donné.

Mais je me rends compte que ça ne marche pas quand j'essaye d'appeler une image à partir d'une page qui se trouve sur un sous-domaine.

Quelle est alors la syntaxe pour rajouter un domaine, ou inclure tous les sous-domaines d'un domaine ?

SetEnvIfNoCase Referer "^http://www.domaine1.com/" local_ref=1
<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

Merci.

Dans le meme but, on peut ajouter dans l'entete de chaque page:

<meta http-equiv="imagetoolbar" CONTENT="no">

pour éviter la barre d'outils d' IE6, et pour empecher le clic droit, il suffit d'ajouter à la balise body:

oncontextmenu="return false"

c'est aussi facile de programmer là un message d'alerte, ou l'affichage d'un calque...

JalaL
18/02/2004, 11h44
Salut
A mon avis il faut que tu remplaces
SetEnvIfNoCase Referer "^http://www.domaine1.com/" local_ref=1
par
SetEnvIfNoCase Referer "*.domaine1.com/" local_ref=1

outrefranc
18/02/2004, 17h03
Voilà comment j'ai fait, ça marche, mais ça me semble vraiment pas terrible, si quelqu'un a une meilleure méthode, qu'il hésite pas à me la donner.

SetEnvIfNoCase Referer "^http://www.outrefranc.com/" local_ref=1
SetEnvIfNoCase Referer "^http://outrefranc.com/" local_ref=1
SetEnvIfNoCase Referer "^http://www.lesoutrefrancs.outrefranc.com/" local_ref=1
SetEnvIfNoCase Referer "^http://lesoutrefrancs.outrefranc.com/" local_ref=1
SetEnvIfNoCase Referer "^http://www.auto.outrefranc.com/" local_ref=1
SetEnvIfNoCase Referer "^http://auto.outrefranc.com/" local_ref=1
<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

pascal bérest
19/02/2004, 12h05
Dans le même ordre d'idée, il y a moyen d'interdire la récupération de certains fichiers directement sans passer par une page ?

par exemple, peut on interdire de lire tous les fichiers dans un répertoire data/ par exemple, data/ contenant plein d'images, de css, etc, etc, et quand même les faire apparaitre sur le site, si elles sont appelées par un page html ou php ?

merci.
pascal.

JalaL
19/02/2004, 12h23
C'est justement le but de ce sujet.
I faut tout simplement ajouter les extentions des fichiers qu'on veut interdir leur liaison directe depuis les sites 'voleurs'. Ajoute les extentions dans la dernière ligne et met ce fichier .htaccess dans le repertoire que tu veux proteger.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.tonsite.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://subdomain.tonsite.com/.*$ [NC]
ReWriteRule .*\.(gif|png|jpg)$ - [F]

Par exepmle si tu veux remplacer l'image qu'on te vole par ton logo (pour dire attention vous volez mes images) remplace la dervière ligne par ceci
ReWriteRule .*\.(gif|png|jpg)$ http://www.tonsite.com/chemin/vers/ton_logo.gif [R]

David.A
01/03/2004, 15h53
bon, moi j'ai fait ça

SetEnvIfNoCase Referer "^http://www.abigmail.com/" local_ref=1
SetEnvIfNoCase Referer "^http://abigmail.com/" local_ref=1
<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>


ça marche nikel, sauf que j'aimerais étendre ça à tout type de fichier
genre dans <FilesMatch ".(gif|jpg)"> mettre un truc genre <FilesMatch ".(*)"> sauf que j'ai l'impression que ça marche pas

quelqu'un à une idée?

Ali Baba
01/03/2004, 16h21
Et si tu enlèves <FilesMatch> ?

SetEnvIfNoCase Referer "^http://www.abigmail.com/" local_ref=1
SetEnvIfNoCase Referer "^http://abigmail.com/" local_ref=1
Order Allow,Deny
Allow from env=local_ref

David.A
01/03/2004, 18h11
hey mais tu sais que ça marche ça :)

Marci beaucoup :)

Daweb
06/03/2004, 23h45
outrefranc écrivait :
oncontextmenu="return false"

c'est aussi facile de programmer là un message d'alerte, ou l'affichage d'un calque... [/B]

Perso quand je tombe sur un site qui fait cela, je ferme et je n'y retourne plus jamais. C'est un comportement ridicule, pas pratique pour les visiteurs, et qui n'a aucun interet. Il ne protège rien en plus.

Et contournable en plus, sans difficultés...

JalaL
15/04/2004, 11h02
Bonjour a tous

Assurez-vous que cela fonctionne toujours chez OVH.

Je viens de tomber sur un site qui utilise MON design et qui ne s'est pas limité a copier mais en plus il utilise les images hebergées sur mon site.

J'utilise l'astuce de mod_rewite et ca marchait au debut. L'astuce avec <FilesMatch> n'a jamais fonctionné (et je veut toujours pas fonctionner)

D.L
18/04/2004, 21h44
c'est quoi l'adresse de ton site et du site voleur?

parce que moi ça marche toujours bien

Oum
17/01/2006, 04h14
Bonjour,

la solution avec les SetEnvIfNoCase fonctionne très bien chez moi, mais je prefèrerais les rewriterules puisqu'elle me permet d'envoyer une autre image à la place, ce qui quand même bien plus fun.... seulement voilà ça marche pas :'(

voici ce que j'ai mis dans mon htaccess :

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.oum.fr/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://forum.oum.fr/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://oum.fr/.*$ [NC]
ReWriteRule .*\.(gif|png|jpg)$ http://www.oum.fr/pics/leech.gif [R]

quelqu'un pourrait-il m'aider s'il vous plaît ?

Merci d'avance :)

Oum
17/01/2006, 20h37
bon j'ai trouvé il y avait juste la condition !^$ en trop

donc ça à la racine :

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.oum.fr/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://forum.oum.fr/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://oum.fr/.*$ [NC]
ReWriteRule .*\.(gif|png|jpg)$ http://www.oum.fr/pics/leech.gif [R]

et ça dans le dossier /pics pour les images que je diffuse (avatars, screenshots, etc...)

RewriteEngine Off

et le bonhomme se retrouve avec une grosse image bien laide à la place de celle volée :D

Cybersonic
20/01/2006, 02h24
pascal bérest écrivait :
Dans le même ordre d'idée, il y a moyen d'interdire la récupération de certains fichiers directement sans passer par une page ?

par exemple, peut on interdire de lire tous les fichiers dans un répertoire data/ par exemple, data/ contenant plein d'images, de css, etc, etc, et quand même les faire apparaitre sur le site, si elles sont appelées par un page html ou php ?

merci.
pascal.

si je comprend bien, tu demande à ce que tes fichiers jpg "exemple" n'apparaisse pas si un gars vas sur ton domaine dans le répertoire ou se trouve justement les fichiers jpg

genre, il vas sur www.tonsite.com/images/

et la il a un forbiden à la place de l'affichage des fichiers qui se trouve dans ce répertoire la

la solution pour cela, c'est aussi un htaccess avec ceci :

Options -Indexes

qui interdit de voir les fichiers qui se trouve dans les répertoires de ton site, mais qui bien sur n'interdit pas les pages Html de se servire des ressources qui lui sont attribués dans ces répertoires en question

c'est d'ailleur tellement facile à mettre en place que je comprend pas pourquoi il y a encore des sites sensibles qui n'active pas cela sur les répertoires du site

dvhh
24/01/2006, 00h23
le marquage d'image est encore le moyen le plus efficace
pour empêcher une exploitation correcte des images mise sur ton site.
Car quel que soit les moyen de protections tes image passent par le réseau
et passent par la machine client (possiblement le cache du navigateur).
Ensuite pour des images non recuperable pour le premier venu
l'utilisation des CSS peut être très utile, même si l'option n'est pas compatible avec les vieux navigateur web ne comprenant pas le css.
et d'utiliser les images en fond d'element html