L’HOTLINKING DANNEGGIA IL TUO SITO
Facciamo un esempio. L’immagine che vedete qui sotto è stata caricata direttamente su un mio sito (ospite originale di questo articolo). Il server web non fa altro che andare a caricare una risorsa interna (l’immagine stessa) e mostrarla al visitatore, senza alcun carico elaborativo extra.
Il codice dell’immagine è il seguente:
<img src="/wp-content/uploads/2012/05/kenny-mccormick.jpg" alt="" border="0" width="320" height="240" />
Un sito esterno, invece di effettuare il download dell’immagine e di caricarla sul proprio server (cosa che, oltretutto, è sempre consigliabile in quanto migliora moltissimo i tempi di caricamento e le prestazioni generali del sito), ottiene il collegamento diretto alla risorsa e lo include all’interno di una propria pagina.
<img src="https://www.skyflash.it/wp-content/uploads/2012/05/kenny-mccormick.jpg" alt="" border="0" width="320" height="240" />
Il risultato sarà che il secondo sito, eterno al nostro, sfrutta l’immagine senza però sacrificare il proprio spazio web, mentre il nostro sito, su cui risiede l’immagine, sarà sottoposto ad un carico eccessivo (ed assolutamente non richiesto nè tanto meno gradito) sia per quanto riguarda la propria banda passante che per le risorse del server.
COME PROTEGGERSI DA HOTLINKING
Sono sufficienti alcune righe da aggiungere al proprio, immancabile, file .htaccess e, se volete, un’immagine preparata per lo scopo, che servirà per sbattere in faccia al webmaster antipatico la dura verità :smile:
ATTENZIONE: la modifica di .htaccess, se fatta da persone non esperte e non particolarmente attente, può generare molti problemi al vostro sito WordPress, fino a renderlo inaccessibile. Assicuratevi quindi di fare SEMPRE una copia di sicurezza di .htaccess prima di cominciare le modifiche
Aprite in un qualsaisi editor di testo il vostro file .htaccess ed in coda (se usate WordPress, dovrebbero esserci solo le direttive di default) e dopo ### END WordPress ### aggiungete il seguente codice:
### Blocca l'hotlinking - Webmaster cattivo pussa via
RewriteEngineon
RewriteCond%{HTTP_REFERER}!^$
RewriteCond%{HTTP_REFERER}!^http(s)?://(www\.)?skyflash.it[NC]
RewriteCond%{HTTP_REFERER}!^http(s)?://(www\.)?google.com[NC]
RewriteCond%{HTTP_USER_AGENT}!googlebot[NC]
RewriteCond%{REQUEST_URI}!^hotlink.jpg$
RewriteRule\.(jpg|jpeg|png|gif|js|swf)$hotlink.jpg[NC,R,L]
SPIEGAZIONE
Alla terza riga trovate:
RewriteCond%{HTTP_REFERER}!^$
Questa istruzione consente ai referrer che non forniscono informazioni di accedere al contenuto. Ciò è reso necessario in quanto molti visitatori (soprattutto quelli che si connettono dall’ufficio e si trovano dietro a proxy) sono protetti da un firewall che non rilascia informazioni al server per ragioni di sicurezza.
Righe 4, 5 e 6:
RewriteCond%{HTTP_REFERER}!^http(s)?://(www\.)?skyflash.it[NC]
RewriteCond%{HTTP_REFERER}!^http(s)?://(www\.)?google.com[NC]
RewriteCond%{HTTP_USER_AGENT}!googlebot[NC]
specificano i domini che invece possono effettuare l’hotlinking e quindi visualizzare le immagini presenti sul server. Quindi scriveremo il nostro dominio internet e, in caso vogliate farvi indicizzare le immagini, Google. Tutti gli altri sono fuori.
Riga 7:
RewriteCond%{REQUEST_URI}!^hotlink.jpg$
Se proprio qualcuno vuole rubare qualche immagine, allora lasciamogli prendere quella che abbiamo preparato per segnalare gli hotlinker. Questa riga ci assicura che l’immagine sia sempre visualizzabile.
Riga 8:
RewriteRule\.(jpg|jpeg|png|gif|js|swf)$hotlink.jpg[NC,R,L]
Specifica il formato dei file protetti dall’hotlinking (non solo le immagini ne sono soggette) e sostituisce le richieste con un’immagine statica.
Ovviamente potrete specificare l’immagine che desiderate, ma assicuratevi che questa non sia protetta (vedi riga precedente) oppure, ancora meglio, caricatela su una risorsa esterna come Dropbox, o il risultato sarà un loop infinito!
CONCEDERE L’ACCESSO A BING, YAHOO E FACEBOOK
Esattamente come abbiamo fatto per Google, aggiungiamo al nostro .htaccess le seguenti direttive:
RewriteCond%{HTTP_REFERER}!msn.[NC]
RewriteCond%{HTTP_REFERER}!yahoo.[NC]
RewriteCond%{HTTP_REFERER}!^https?://(www\.)?facebook\.com[NC]
RewriteCond%{HTTP_USER_AGENT}!facebookplatform[NC]
RewriteCond%{HTTP_USER_AGENT}!msnbot[NC]
RewriteCond${HTTP_USER_AGENT}!slurp[NC]
CONCLUSIONI
Il risultato finale sarà quindi il seguente:
### Blocca l'hotlinking - Webmaster cattivo pussa via
RewriteEngineon
RewriteCond%{HTTP_REFERER}!^$
RewriteCond%{HTTP_REFERER}!^http(s)?://(www\.)?skyflash.it[NC]
RewriteCond%{HTTP_REFERER}!^http(s)?://(www\.)?google.com[NC]
RewriteCond%{HTTP_REFERER}!msn.[NC]
RewriteCond%{HTTP_REFERER}!yahoo.[NC]
RewriteCond%{HTTP_REFERER}!^https?://(www\.)?facebook\.com[NC]
RewriteCond%{HTTP_USER_AGENT}!googlebot[NC]
RewriteCond%{HTTP_USER_AGENT}!facebookplatform[NC]
RewriteCond%{HTTP_USER_AGENT}!msnbot[NC]
RewriteCond${HTTP_USER_AGENT}!slurp[NC]
RewriteCond%{REQUEST_URI}!^hotlink.jpg$
RewriteRule\.(jpg|jpeg|png|gif|js|swf)$hotlink.jpg[NC,R,L]
Chi dovesse linkare ad una risorsa con estensione jpg, jpeg, png, gif, js o swf sul sito così “trattato”, come unico risultato avrà la visualizzazione della seguente immagine
Se guardando le statistiche del vostro spazio web avete notato un consumo eccessivo di banda in uscita o se state rilevando una grande quantità di accessi esterni alle stesse immagini, probabilmente siete hotlinkati da qualcuno. Ora sapete come difendervi.
Risorse esterne:
- Stop bandwith thief using rewrite rules on .htaccess file
- Prevent hotlinking of images – how to hotlink protect
- Smarter Way To Prevent Image Hotlinking With .Htaccess
- Impedire l’hotlinking delle immagini con il file .htaccess
- Proteggiamoci dall’hotlinking con un semplice file
- Stop image hotlinking with .htaccess
- Il post originale