est si (referer $! = « mysite.com ») pas une bonne façon d'éviter d'autres sites de lien dur mes images ou swf?

StackOverflow https://stackoverflow.com/questions/918363

  •  06-09-2019
  •  | 
  •  

Question

parfois je vois une image pas servi lorsque le regard du navigateur à www.somesite.com/some_image.jpg -. Il vous dira que vous avez besoin de regarder l'image de l'intérieur d'une page

(par exemple lors de l'utilisation de la recherche d'images de Google et regarder des résultats)

Je pense donc que leur serveur utilise quelque chose comme

# pseudo code
if ($referer not contain "mywebsite.com") then not serve the image / swf

mais cela est probablement pas une bonne façon depuis HTTP_REFERER est pas fiable? de sorte que certains utilisateurs finissent par ne pas voir l'image ou swf lorsque les informations de referer manque?

Était-ce utile?

La solution

ou encore mieux si vous avez accès à l'aide d'un fichier .htaccess, vous pouvez faire ce qui suit:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css|cur|png|jpeg)$ - [F]

ou si vous les désiriez voir une autre image puis procédez comme suit:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.example.com/angryman.gif [R,L]

Autres conseils

Il peut être fiable, mais certains pare-feu bande dehors, vous devriez donc faire

// psuedo code
if ($referer does not contain "example.com" and $referer is set and $referer is not equal to "") then do not serve image

Tout comme une autre aller, je pense qu'il est beaucoup plus amusant de laisser négligemment Hotlinking-referrers jusqu'à ce que vous obtenez un petit rigolo poussant des milliers de demandes par jour (sans lien réel-through). Ce que je l'ai fait alors l'image est redirect quelque chose complètement différent .

Pensez Goatse. Seulement plus méchant.

Il est pas parfait, mais il est probablement mieux que rien si elle peut éviter 80% du public, qui ne saurait pas comment pirater referer, de saisir votre image. Vous devez également contenir votre dossier d'images sous un nom aléatoire des dossiers et de les renommer périodiquement pour éviter une liaison directe.

J'amélioreraient ce chiffre à 99.something%. Presque toutes les personnes auront pas proxies qui interfèrent avec les chaînes referrer.

Mais oui, il est trivial de définir le referrer avec wget (et al).

Reportez-tête est juste texte, il peut être forgé dans la demande http. Comme indiqué dans un commentaire précédent, votre pourrait devrait prendre soin de la grande majorité des gens.

similaire à Henri Watson, je pensais

# pseudo code
if($referer not empty and $referer not contain "mywebsite.com") then don't serve it. 

un double contrôle les 3 cas:
referer vide ==> servi
referer pas vide et contient « mywebsite.com » ==> servi
referer pas vide et non contian "mywebsite.com" ==> pas servi

alors la personne qui fait le lien dur sera voit plus probable que cela ne fonctionne pas de lien entre cette façon et changer tout de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top