La prévention Amazon Cloudfront hotlinking
- Je utiliser Amazon Cloudfront pour héberger l'ensemble de mon site d'images et de vidéos, afin de les servir plus rapidement à mes utilisateurs qui sont assez dispersés à travers le monde. J'applique aussi assez agressive en cache les éléments hébergés sur Cloudfront, réglage Cache-Control
à public, max-age=7776000
.
J'ai découvert récemment à mon agacement que les sites tiers sont hotlinking à mon Cloudfront serveur pour afficher des images sur leurs propres pages, sans autorisation.
J'ai configuré .htaccess
pour empêcher le hotlinking sur mon propre serveur, mais je n'ai pas trouvé un moyen de le faire sur Cloudfront, qui ne semble pas en charge la fonctionnalité nativement. Et, fâcheusement, Amazon Seau Politiques, qui pourraient être utilisés pour prévenir le hotlinking, ont d'effet que sur le S3, ils n'ont aucun effet sur CloudFront distributions [lien]. Si vous voulez prendre avantage de les politiques que vous avez pour diffuser votre contenu à partir de S3 directement.
À récurer mes logs du serveur pour hotlinkers et de modifier manuellement les noms de fichiers n'est pas vraiment une option réaliste, même si j'ai fait cela pour mettre fin à la plupart des flagrants délits.
Toute suggestion serait la bienvenue.
Vous devez vous connecter pour publier un commentaire.
Officielle de l'approche est d'utiliser signé url pour vos médias. Pour chaque morceau de médias que vous voulez distribuer, vous pouvez générer une url spécialement conçue qui travaille dans une contrainte de temps et d'adresses ip source.
Une approche pour les pages statiques, est de générer une url pour les médias inclus dans cette page, qui sont valables pour 2 fois plus de durée que la page du temps de mise en cache. Disons que votre page est temps de mise en cache est de 1 jour. Tous les 2 jours, les liens seraient annulés, ce qui oblige le hotlinkers de mettre à jour leurs url. Il n'est pas infaillible, car ils peuvent créer des outils pour obtenir la nouvelle url automatiquement mais il faut éviter la plupart des gens.
Si votre page est dynamique, vous n'avez pas besoin de s'inquiéter à la corbeille de votre page cache de sorte que vous pouvez simplement générer les urls qui ne travaillent que pour le demandeur de la propriété intellectuelle.
Vous pouvez transférer le
Referer
de l'en-tête de votre point d'origineAssurez-vous de manipuler l'en-tête Referer sur votre origine.
Origin
,Access-Control-Request-Headers
etAccess-Control-Request-Methods
à la liste blanche... Également le document lié ne rien dire explicitement sur le referer...prevent hotlinking nginx
ouprevent hotlinking apache
.Nous avons eu de nombreuses hotlinking questions. En fin de compte, nous avons créé des sprites css pour beaucoup de nos images. Soit l'ajout d'espace blanc à la base, les côtés ou à la combinaison des images ensemble.
Nous les afficher correctement sur nos pages à l'aide de CSS, mais tout hotlinks serait de montrer les images de façon incorrecte, sauf si ils ont copié le CSS/HTML ainsi.
Nous avons constaté qu'ils ne te dérange pas (ou ne savent pas comment).
Comme de Oct. 2015, vous pouvez utiliser AWS WAF pour restreindre l'accès à Cloudfront fichiers. Voici un article à partir d'AWS qui annonce WAF et explique ce que vous pouvez faire avec elle. Voici un article qui m'a aidé à la création de ma première ACL pour restreindre l'accès basé sur le référent.
En gros, j'ai créé une nouvelle ACL avec une action par défaut de la REFUSER. J'ai ajouté une règle qui vérifie à la fin de l'en-tête referer chaîne pour mon nom de domaine (en minuscules). Si elle passe cette règle, il PERMET d'accéder.
Après l'affectation de mes ACL à ma distribution Cloudfront, j'ai essayé de charger un de mes fichiers de données directement dans google Chrome, et j'ai eu cette erreur:
Autant que je sache, il n'existe actuellement pas de solution, mais j'ai quelques éventuellement pertinentes, éventuellement hors de propos suggestions...
Premier: de Nombreuses personnes ont demandé ce sur la Cloudfront les forums de support. Voir ici et ici, par exemple.
Clairement AWS avantages de hotlinking: le plus de hits, plus ils nous charger pour! Je pense que nous (Cloudfront utilisateurs) besoin pour commencer une sorte de fortement orchestré campagne en vue de leur offrir referer vérification de la fonctionnalité.
Une autre solution temporaire, j'ai pensé est de changer le CNAME-je utiliser pour envoyer le trafic vers cloudfront/s3. Donc, disons que vous avez actuellement envoyer toutes vos images:
cdn.blahblahblah.com (qui redirige vers certains cloudfront/compartiment s3)
Vous pouvez le changer à cdn2.blahblahblah.com et supprimer l'entrée DNS pour cdn.blahblahblah.com
Comme un changement de DNS, qui serait à l'assommer toutes les personnes qui, actuellement, le hotlinking avant leur trafic a obtenu n'importe où près de votre serveur: l'entrée DNS serait tout simplement ne pas le regarder. Vous auriez à garder la modification de la can CNAME pour faire de ce efficace (disons une fois par mois?), mais il serait de travailler.
C'est en fait un problème plus important qu'il n'y paraît, car elle signifie que les gens peuvent gratter ensemble des copies de vos pages du site (y compris les images) beaucoup plus facilement - de sorte qu'il n'est pas seulement les images que vous perdre et de ne pas juste que vous payez pour servir de ces images. Les moteurs de recherche parfois conclure que vos pages sont les copies et des copies sont les originaux... et bang va de votre trafic.
Je pense à l'abandon Cloudfront en faveur d'une stratégiquement positionné, super-rapide de serveur dédié (un service de tout le contenu pour le monde entier à partir d'un seul endroit) pour me donner beaucoup plus de contrôle sur de telles choses.
De toute façon, j'espère que quelqu'un d'autre a une meilleure réponse!
Cette question mentionnée fichiers image et vidéo.
Referer vérification ne peut pas être utilisé pour protéger les ressources multimédias de hotlinking, car certains navigateurs mobiles ne pas envoyer l'en-tête referer au moment de la demande d'un fichier audio ou vidéo joué en utilisant HTML5.
Je suis sûr que sur Safari et Chrome sur iPhone et Safari sur Android.
Trop mauvais! Merci, Apple et Google.
Que diriez-Signé à l'aide de cookies ? Créer signé cookie à l'aide personnalisé de la politique qui prend également en charge divers types de restrictions que vous souhaitez régler et aussi il est générique.