2012-12-13 9 views
5

Eines meiner Bedenken bei der Verwendung von Azure Blob Storage besteht in der Verknüpfung von Hotlinks.Verhindern der Verknüpfung in Azure Blob-Speicher

Es scheint eine gute Idee zu sein, statische Inhalte (Bilder, Videos, Audio, große JS- und CSS-Dateien, etc ..) in einen öffentlichen Container zu legen, aber nichts hält andere Websites davon ab, diesen Inhalt zu verlinken und zu verwenden ihre Webseiten. Daher würden einige Webmaster, die meine Inhalte auf ihren Websites verwenden, mich Geld kosten.

Ein allgemeiner Schutz für das Hotlinking besteht darin, nach dem HTTP-Header Referer zu filtern. Wie kann dies in Microsoft Azure Blob Storage erreicht werden?

Anscheinend it is possible in Amazon S3.

Ich weiß, das wäre schlecht für Google Bildersuche, da es meine Bilder nicht zeigen könnte, aber gut ... damit könnte ich leben.

Prost.

Antwort

2

Windows Azure unterstützt das Hinzufügen von Logik zu Blob Storage nicht wie in Amazon S3. Aber für dieses spezielle Szenario würden Sie normalerweise SAS (Shared Access Signatures) verwenden.

Sie müssten Ihren Container in einen privaten Zugriff ändern. Dies bedeutet, dass auf Dateien nur zugegriffen werden kann, wenn Sie einen der beiden Schlüssel haben oder wenn Sie einen SAS haben. In der Regel wäre es Ihr Webserver, der die SAS generiert und sie beispielsweise auf die URL des Bildes anwendet. Durch die Arbeit mit SAS-Signaturen können Sie den Zugriff auf eine Datei für einen bestimmten Zeitraum (z. B. 10 Minuten) zulassen, wodurch eine Verknüpfung verhindert wird.

die URL der Datei mit einem SAS würde wie folgt aussehen:

https://storageaccountname.blob.core.windows.net/container/path/image.jpg?sv=2012-02-12&se=2012-11-19T19%3A25%3A32Z&sr=b&sp=r&sig=s6QIdwAGY4xC8fs4L9pK8hAGIY%2F8x58aqBcFbejYPdM%3D

+1

Humm ... Ich wusste von SAS. Das Problem ist, dass, wenn ich zum Beispiel den SAS auf 10 Minuten setze, nach diesem Zeitraum die Clients den gesamten statischen Inhalt aus dem Blob erneut herunterladen müssen, ohne die Möglichkeit zu haben, HTTP-Caching zu verwenden. Aber vielleicht gibt es keinen anderen Weg. Vielen Dank. – vtortola

1

Zusammen mit SAS Sie Cache-Control-Header für den Blob verwenden, um die Leseoperationen des zu minimieren Privater statischer Inhalt des Blobspeichers. Dies könnte hilfreich sein - TechNet wiki article. Lassen Sie mich Ihre Ansichten wissen.

Verwandte Themen