Una delle pratiche più fastidiose messe in campo da produttori di contenuti, siano essi blogger o editor di siti più complessi, è quella dell’ Hot-linking: ovvero inserire nelle loro pagine il link diretto alle immagini ospitate dal sito, e quindi dal server, di altri. Generalmente questa tecnica deriva da dei banali “copia e incolla” dei contenuti per metterli da qualche altra parte: già questo è scorretto … ma pazienza. Quello che da fastidio invece è il fatto che ogni volta che il contenuto clonato o copiato viene visualizzato da un browser, le immagini vengono invece recuperate dal sito, e quindi dal server, originario il quale è come se fungesse da semplice cartella condivisa per i file: non solo quindi vi hanno fregato il contenuto ma dovreste pure regalare “banda” a chi non si è nemmeno preso la briga di scaricare le immagini e di linkarle in modo corretto.
Se il vostro sito è ospitato da un web server Apache è possibile bloccare questo comportamento scorretto utilizzando un file .htaccess oppure, meglio, direttamente il file di configurazione del sito letto da Apache. In pratica si tratta di istruire Apache a bloccare l’accesso a tutte le immagini ospitate nel sito di cui venga fatta richiesta senza che sia indicato come Referer (ovvero come sito di origine) il sito origine stesso.
Mi spiego meglio : ogni volta che un browser legge una pagina html, prima legge il contenuto del codice html stesso e poi inizia a recuperare tutti gli oggetti linkati dal codice stesso come ad esempio fogli di stile (CSS), script in vari linguaggi ed anche, ovviamente le immagini. E quando il browser fa richiesta al server di una determinata immagine indica anche quale sia la pagina (e quindi l’URL) sul quale sta lavorando o dalla quale proviene: questa indicazione si chiama “Referer”. Quindi per impostare il blocco basta che il Referer sia diverso dall’URL del vostro sito per impedire la visualizzazione delle immagini.
Per iniziare è necessario accertarsi che sul server che ospita il vostro sito sia installato e disponibile il modulo setenvif : se avete dei dubbi chiedere al supporto tecnico del vostro servizio di hosting. A questo punto potete inserire nel file di definizione del vostro sito all’interno di Apache la seguente direttiva:
1 2 3 4 5 6 7 8 9 | <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> SetEnvIfNoCase Referer "^http://www.an-lan.it/" locally_linked=1 SetEnvIfNoCase Referer "^http://www.an-lan.it$" locally_linked=1 SetEnvIfNoCase Referer "^http://an-lan.it/" locally_linked=1 SetEnvIfNoCase Referer "^http://an-lan.it$" locally_linked=1 SetEnvIfNoCase Referer "^$" locally_linked=1 Order Allow,Deny Allow from env=locally_linked </FilesMatch> |
Ovviamente questo esempio riporta l’utilizzo del mio nome a dominio. Per il vostro dominio dovrete sostituire il vostro nome con e senza www.
Cosa dice effettivamente questa direttiva ? Per tutti i file che hanno una estensione di tipo immagine (e anche css) se il valore Referer passato dal browser non è un url del sito, allora nega la visualizzazione.
Semplice no ?
Attenzione ! Questa impostazione non impedisce in nessun modo che vi copino le immagini (e anche i contenuti) per incollarli da qualche altra parte, ma almeno non farete da prestatore di banda per utenti a sbafo !