Le hotlinking — ou intégration directe — se produit lorsqu'un site tiers affiche vos images en liant directement leurs URLs sur votre serveur. Résultat : leur site consomme votre bande passante, use votre quota de transfert et sollicite votre serveur, sans que vous en tiriez le moindre bénéfice. En 2026, le hotlinking reste l'un des abus les plus répandus sur le web. Voici toutes les méthodes pour s'en protéger efficacement.
Comprendre le hotlinking et ses conséquences
Lorsqu'un site intègre une image via une balise <img src="https://votredomaine.com/photo.jpg"> dans ses propres pages, c'est votre serveur qui répond à chaque chargement de leur page. Concrètement :
- Votre bande passante est consommée pour alimenter un site tiers
- Votre quota de transfert mensuel s'épuise plus vite
- Votre serveur subit une charge supplémentaire à chaque visite du site fautif
- Vous payez l'hébergement d'images qui servent à enrichir le contenu d'autres sites
Dans les cas extrêmes, un site très visité qui hotlinke vos images peut provoquer une surcharge serveur ou un dépassement de quota qui rend votre propre site inaccessible.
Méthode 1 : bloquer le hotlinking via .htaccess (Apache)
C'est la méthode la plus classique et la plus efficace sur les serveurs Apache. Le fichier .htaccess permet de vérifier l'en-tête Referer HTTP de chaque requête — si la requête ne provient pas de votre domaine, elle est bloquée ou redirigée.
Ajoutez ces lignes dans votre fichier .htaccess à la racine de votre site :
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www.)?votredomaine.com [NC]
RewriteRule .(jpg|jpeg|png|gif|webp|svg|avif)$ - [F,L]Cette règle bloque toute requête d'image dont le Referer n'est pas votre domaine. Vous pouvez remplacer [F,L] (erreur 403) par une redirection vers une image d'avertissement :
RewriteRule .(jpg|jpeg|png|gif|webp|svg|avif)$ https://votredomaine.com/no-hotlink.png [R,L]Bon à savoir : la condition RewriteCond %{HTTP_REFERER} !^$ autorise les requêtes sans Referer (accès direct, marque-pages, outils de développement). Si vous souhaitez également les bloquer, supprimez cette ligne — mais sachez que cela peut empêcher l'affichage de vos images dans certains contextes légitimes comme les emails HTML ou les agrégateurs RSS.
Méthode 2 : bloquer le hotlinking via Nginx
Sur un serveur Nginx, la protection se configure dans le bloc server ou location de votre fichier de configuration :
location ~* .(jpg|jpeg|png|gif|webp|svg|avif)$ {
valid_referers none blocked votredomaine.com *.votredomaine.com;
if ($invalid_referer) {
return 403;
}
}La directive valid_referers none blocked autorise les accès directs (none) et les requêtes sans Referer (blocked). Seuls les domaines listés sont autorisés à intégrer vos images.
Méthode 3 : utiliser la politique Referrer-Policy
La directive HTTP Referrer-Policy contrôle quelles informations de Referer sont envoyées avec les requêtes depuis votre site. En configurant une politique restrictive, vous réduisez les informations disponibles pour les sites tiers — mais cette méthode ne protège pas activement vos images, elle limite seulement la propagation de l'URL de votre site.
Pour une protection basique, ajoutez dans votre .htaccess :
Header set Referrer-Policy "same-origin"Méthode 4 : protection via CDN
Si vous hébergez vos images via un CDN (Cloudflare, AWS CloudFront, Fastly…), la protection contre le hotlinking est généralement disponible nativement dans le panneau d'administration :
- Cloudflare : activez la règle "Hotlink Protection" dans l'onglet Scrape Shield de votre tableau de bord. Elle bloque automatiquement les requêtes d'images provenant de domaines non autorisés
- AWS CloudFront : utilisez une fonction Lambda@Edge pour vérifier l'en-tête Referer et bloquer les requêtes non autorisées
- Bunny CDN : la protection hotlinking est disponible directement dans les paramètres de la zone de stockage
L'avantage du CDN est double : la protection est gérée au niveau du réseau de distribution, avant même d'atteindre votre serveur d'origine, et elle s'applique à l'ensemble de vos assets sans modifier votre configuration serveur.
Méthode 5 : renommer et déplacer régulièrement vos images
Une approche moins technique mais complémentaire consiste à modifier périodiquement les URLs de vos images. Tout lien direct externe devient immédiatement invalide. Cette approche peut être automatisée via un script de renommage ou une gestion des assets avec hash de contenu (comme Webpack ou Vite le font nativement pour les fichiers CSS et JS).
Méthode 6 : utiliser des tokens d'accès temporaires
Pour les images sensibles ou à fort trafic, la génération d'URLs signées avec expiration est la protection la plus robuste. Le principe : chaque URL d'image contient un token cryptographique valable pour une durée limitée (1h, 24h…). Passé ce délai, l'URL n'est plus valide.
- AWS S3 : génération de Presigned URLs via l'SDK AWS
- Cloudflare R2 : URLs signées avec expiration configurable
- Bunny CDN : URL signing avec clé secrète et timestamp
| Méthode | Difficulté | Efficacité | Compatible avec CDN |
|---|---|---|---|
| .htaccess (Apache) | Facile | Bonne | Partielle |
| Nginx config | Intermédiaire | Bonne | Partielle |
| CDN natif (Cloudflare…) | Très facile | Très bonne | Oui (native) |
| Renommage périodique | Variable | Moyenne | Oui |
| URLs signées / tokens | Avancée | Maximale | Oui |
Bon à savoir : aucune protection anti-hotlinking n'est absolument infaillible. Un site déterminé peut toujours télécharger vos images et les ré-héberger sur ses propres serveurs — dans ce cas, c'est une problématique de droit d'auteur, non de hotlinking. La protection via .htaccess ou CDN couvre la grande majorité des cas abusifs et suffit pour protéger votre bande passante au quotidien.