2012-12-13 10 views
5

Uno dei miei dubbi sull'utilizzo di Archiviazione BLOB di Azure è l'hotlinking.Impedire il collegamento rapido nell'archiviazione BLOB di Azure

Sembra una buona idea inserire contenuto statico (immagini, video, audio, file JS e CSS di grandi dimensioni, ecc.) In un contenitore pubblico, ma nulla impedisce ad altri siti Web di collegare questo contenuto e utilizzarlo in i loro siti web. Pertanto, alcuni webmaster che utilizzano i miei contenuti nei loro siti, mi costerebbero dei soldi.

Una protezione comune per hotlinking è quella di filtrare tramite l'intestazione HTTP Referer. Come può essere realizzato in Archiviazione BLOB di Microsoft Azure?

Apparentemente, it is possible in Amazon S3.

So che questo sarebbe male per la ricerca di immagini di Google, dal momento che non sarebbe in grado di mostrare le mie foto, ma beh ... potrei vivere con quello.

Cheers.

risposta

2

Windows Azure non supporta l'aggiunta della logica a Blob Storage come in Amazon S3. Ma per questo specifico scenario si utilizza in genere SAS (Shared Access Signatures).

È necessario modificare il contenitore per l'accesso privato. Ciò significa che è possibile accedere ai file solo se si dispone di una delle due chiavi o se si dispone di un SAS. Quindi, in genere, sarebbe il tuo server web a generare il SAS e ad applicarlo all'URL dell'immagine, ad esempio. Lavorando con le firme SAS è possibile consentire l'accesso a un file per un periodo di tempo specifico (diciamo 10 minuti), il che impedirebbe l'hotlinking.

L'URL del vostro file con un SAS sarebbe simile a questa:

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 ... ero a conoscenza di SAS. Il problema è che, se ad esempio, imposto il SAS su 10 minuti, dopo tale periodo di tempo i client dovranno scaricare nuovamente tutto il contenuto statico dal blob, senza possibilità di utilizzare il caching HTTP. Ma forse non c'è altro modo. Grazie. – vtortola

1

Insieme con SAS è possibile utilizzare intestazione Cache-Control per il blob per ridurre al minimo le operazioni di lettura del vostro contenuto statico privato dello storage BLOB. Potrebbe essere utile - TechNet wiki article. Fammi sapere le tue opinioni.

Problemi correlati