Accueil > Divers > Se protéger contre le Hotlinking

Se protéger contre le Hotlinking

samedi 10 juin 2017, par Philippe Donnart

Comment se protéger du Hotlinking, vol d’image et de bande passante, notamment sous WordPress

En utilisant SEObserver j’ai découvert que des sites, souvent du genre blackhat (cheapcigarettesc.info/gallerydpics-dagobert-ier.htm), utilisaient des images en provenance de mes sites.
Ici nous ne sommes pas dans le cas du Balcon des Alpilles Vol d’images sur internet et droit d’auteur mais plutôt sur des webmasters qui affichent des images en provenance directe de mes serveurs.
Je me suis penché sur la question du Hotlinking, pour ne retenir que 3 solutions.

1 - StopBadBots

https://fr.wordpress.org/plugins/stopbadbots/

2 - CloudFlare

Les étapes après inscription sur CloudFlare :

1- https://www.cloudflare.com/a/add-site
2 - Je n’ai gardé que A et www (il suffit de cliquer sur le petit nuage)
3- Choisir son plan (Free pour commencer)
4- Se rendre chez son hébergeur et modifier les DNS, attendre la propagation.
5- Aller sur l’onglet Scrape Shield et mettre le bouton Hotlink Protection sur ON

En crypto suis en Full (strict), le site étant hébergé chez Gandi avec son propre certificat SSL.

Une fois le changement effectué il vous faudra, si vous utilisez WP Rocket, vous rendre dans l’onglet CDN et "Activer l’onglet de réglages CloudFlare", puis renseigner les champs E-mail CloudFlare et Clé API globale.

Par contre si vous utilisez un système extérieur d’optimisation d’images il faudra peut être :
 Aller sur l’onglet Scrape Shield et mettre le bouton Hotlink Protection sur OFF
 Aller sur l’onglet Firewall et Browser Integrity Check sur OFF

CloudFlare et Wp Rocket


 The Ideal WP Rocket Settings With Cloudflare + MaxCDN Instructions

Voici ce que cela donne avec WP Rocket Settings With Cloudflare sans MaxCDN.

Error 500 wp-admin cloudflare

Si vous rencontrez des problèmes de connexion pour WordPress il vous faudra peut être ajouter une Page Rule.

PS : étant confronté à une erreur 500 une fois connecté, j’ai trouvé la solution en consultant les logs.
La mise à jour du thème avait planté l’admin wp-content/themes/genesis/lib/functions/upgrade.php on line 604.
Un upload manuel a solutionné le bug.

3- dans le .htaccess

#HOTLINKING
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ndd.tld [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ https://www.ndd.tld/votreimagequipueoupas.jpg [NC,R,L]
#HOTLINKING FIN

Cela affiche soit l’image que vous leur donnez, soit la petite icone qui signifie qu’il y a un problème de chemin

Si les images dans les articles ne s’affichent pas :

UPDATE wp_posts
SET post_content =
REPLACE (post_content, 'src="http://www.site.com/wp-content/uploads/', 'src="https://www.site.com/wp-content/uploads/');