Verhinderung von Amazon Cloudfront hotlinking
Ich Amazon Cloudfront alle host meine Website Bilder und videos, um Ihnen zu dienen schneller zu meinem Benutzer, die sind ziemlich verstreut auf der ganzen Welt. Ich auch für ziemlich aggressiven forward-caching, um die Elemente, gehostet auf Cloudfront, Einstellung Cache-Control
zu public, max-age=7776000
.
Ich habe vor kurzem entdeckt, zu meinem ärger, dass Websites von Dritten hotlinking zu meinen Cloudfront-server, um die Bilder auf Ihren eigenen Webseiten ohne Genehmigung.
Habe ich konfiguriert .htaccess
zu verhindern hotlinking auf meinem eigenen server, aber noch keinen Weg gefunden, dies zu tun, auf Cloudfront, die nicht scheinen, um die das feature unterstützen nativ. Und, ärgerlicherweise, Amazon Bucket-Richtlinien, die verwendet werden könnten, um zu verhindern, dass hotlinking, wirkt nur auf S3, diese haben keine Auswirkungen auf die CloudFront-Verteilungen [link]. Wenn Sie möchten, um die Vorteile der Politik, die Sie haben zu dienen, die Ihre Inhalte aus dem S3 direkt.
Scheuern meine server-logs für hotlinkers und manuell ändern der Datei Namen ist nicht wirklich eine realistische option, obwohl ich das schon machen, um das Ende der eklatante Verstöße.
Irgendwelche Vorschläge wäre willkommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den offiziellen Ansatz ist die Verwendung von signierte urls für Ihre Medien. Für jede Medien-Stück, das Sie verteilen möchten, können Sie erzeugen eine speziell gestaltete url, das funktioniert in einem bestimmten Einschränkung von Zeit-und Quell-IPs.
Einen Ansatz für statische Seiten zu generieren, temporäre urls für die Medien enthalten, die Seite, die gültig sind für 2x die Dauer wie die Seite, die die caching-Zeit. Lassen Sie uns sagen, dass Ihre Seite die caching-Zeit ist 1 Tag. Alle 2 Tage, die links wären für ungültig erklärt, verpflichtet die hotlinkers-update-urls. Es ist nicht sicher, wie Sie können, build-tools, um die neuen urls automatisch, es sollte aber verhindern, dass die meisten Menschen.
Wenn die Seite dynamisch ist, müssen Sie nicht sorgen zu machen, in den Papierkorb, Ihre Seite in den cache, so dass Sie kann einfach erzeugen urls, die sind nur für die Antragsteller die IP.
Leiten Sie die
Referer
- header, um Ihre HerkunftStellen Sie sicher, dass Griff den Referer-header auf Ihre Herkunft als auch.
Origin
,Access-Control-Request-Headers
undAccess-Control-Request-Methods
zur weißen Liste... Auch das verlinkte Dokument nicht gesagt, dass alles, was nicht explizit über den referer...prevent hotlinking nginx
oderprevent hotlinking apache
.Hatten wir zahlreiche hotlinking-Probleme. Am Ende haben wir erstellt, css-sprites für viele unserer Bilder. Entweder das hinzufügen von Leerraum auf dem Boden/Seiten oder das kombinieren von Bildern zusammen.
Wir angezeigt, Sie richtig auf unseren Seiten mit CSS, aber keine hotlinks würde, zeigen die Bilder falsch, es sei denn, Sie kopiert die CSS/HTML sowie.
Wir haben festgestellt, dass Sie nicht stören (oder weiß nicht wie).
Ab Okt. 2015, Sie können mit AWS WAF, den Zugang zu beschränken, um Cloudfront Dateien. Hier ist ein Artikel von AWS ankündigt WAF und erklärt, was Sie mit ihm tun können. Hier ist ein Artikel , die mir geholfen setup meine erste ACL, um den Zugriff basierend auf den referrer.
Grundsätzlich, ich habe eine neue ACL mit einer Standard-Aktion zu VERWEIGERN. Ich fügte hinzu, eine Regel, die prüft, die Ende der referer-header-string für meine domain-Namen (in Kleinbuchstaben). Wenn es geht, die Regel, die den Zugriff ERMÖGLICHT.
Nachdem Sie meine ACL zu meinem Cloudfront-Verteilung, ich habe versucht, laden Sie eine meiner Daten-Dateien direkt in Chrome und ich habe diesen Fehler:
Soweit ich weiß, gibt es derzeit keine Lösung, aber ich habe ein paar möglicherweise relevanten, möglicherweise irrelevante Vorschläge...
Erste: Zahlreiche Leute haben gefragt, diese auf die Cloudfront-support-Foren. Sehen hier und hier, zum Beispiel.
Deutlich AWS profitiert von hotlinking: je mehr Treffer, desto mehr, die Sie kostenlos bei uns nach! Ich denke, dass wir (Cloudfront-Nutzer) starten müssen irgendeine Art von stark orchestrierte Kampagne, um Sie zu bieten, referer checking als ein feature.
Andere temporäre Lösung habe ich mir gedacht, ist das ändern der CNAME-ich verwende zum senden von Verkehr zu cloudfront/s3. Also lassen Sie uns sagen Sie, dass Sie derzeit senden Sie Ihre Bilder an:
cdn.blahblahblah.com (die leitet auf einige cloudfront/s3-bucket)
Könnten Sie ändern, um cdn2.blahblahblah.com und löschen Sie den DNS-Eintrag für cdn.blahblahblah.com
Als eine DNS-änderung, das würde knock out all die Menschen, die derzeit hotlinking vor Ihrem Verkehr immer irgendwo in der Nähe Ihrer server: der DNS-Eintrag würde einfach nicht nach oben zu sehen. Sie würde ständig wechselnden cdn CNAME, um diese wirksam ist (sagen wir mal einen Monat?), aber es würde funktionieren.
Es ist eigentlich ein größeres problem als es scheint, denn es heißt, Menschen können kratzen komplette Kopien Ihrer website, werden die Seiten (einschließlich der Bilder) viel leichter - es ist also nicht nur die Bilder, die Sie verlieren, und nicht nur, dass man bezahlt, um zu dienen diese Bilder. Suchmaschinen manchmal schließen Sie Ihre Seiten sind kopiert und die Kopien sind die Originale... und Zack geht Sie Ihren traffic.
Ich denke, die Aufgabe von Cloudfront zu Gunsten einer strategisch positionierte, mit super-schnelle dedicated server (dienen alle Inhalte auf der ganzen Welt von einem Ort) zu geben, die mir viel mehr Kontrolle über solche Dinge.
Sowieso, ich hoffe, jemand anderes hat eine bessere Antwort!
Diese Frage erwähnt werden, Bild-und video-Dateien.
Referer-Prüfung kann nicht verwendet werden, zu schützen multimedia-Ressourcen von hotlinking, da einige mobile Browser senden keine referer-header beim anfordern einer audio-oder video-Datei abgespielt mit HTML5.
Ich bin sicher, dass über Safari und Chrome auf dem iPhone und Safari auf Android.
Schade! Danke, Apple und Google.
Wie über die Verwendung von Signierten cookies ? Erstellen Sie unterzeichnet cookie verwenden von benutzerdefinierten Richtlinien, die unterstützt auch verschiedene Arten von Einschränkungen, die Sie festlegen möchten, und es ist auch nur Platzhalter.