Come proteggere le tue immagini dagli hotlink e risparmiare banda

Chi ha un suo sito web, magari ospitato su un servizio di hosting a pagamento, sa benissimo quanto costino spazio e banda al giorno d’oggi. Specialmente in Italia, ma anche altrove non è che regalino nulla. Quindi sprecarli è innanzitutto un peccato ma soprattutto un danno a livello economico. Fare delle pagine web non troppo pesanti aiuta molto a risparmiare questa preziosa risorsa oltre che ad avere delle pagine che si caricheranno in un tempo nettamente minore. Ma c’è un altro spreco di banda da cui dobbiamo metterci al riparo ed è molto meno considerato e si chiama hotlink.

Che cos’è l’hotlink delle immagini?

Visto che in giro non si trova una definizione sufficientemente chiara di questa tecnica cercherò di spiegarla a parole mie nel modo più semplice possibile.

Spesso quando dovete scrivere una pagina web (o un post sul vostro blog) e vi servono delle immagini, magari per abbellire il vostro contenuto, se non ne avete delle vostre le cercate nella Rete ed una volta che le avete trovate avete due possibilità:

  1. Scaricare l’immagine sul vostro computer, caricarla sul vostro server/spazio web ed inserirla nella vostra pagina,
    che a livello di codice HTML si traduce in:

    <img src="http://www.vostro_indirizzo_web.com/immagine.jpg" title="esempio" />
  2. Inserire direttamente l’immagine all’interno della vostra pagina web utilizzando come indirizzo quello dell’immagine che avete appena trovato senza fare niente altro, che a livello di codice HTML si traduce in:
    <img src="http://www.indirizzo_web_non_vostro.com/immagine.jpg" title="esempio" />

Il primo caso è quello un pò più lungo e macchinoso ma consigliabile a tutti per svariate ragioni. Così facendo infatti sarete sicuri che l’immagine sarà sempre presente nella vostra pagina web anche quando magari il sito web dove l’avete scovata verrà chiuso, cambierà la sua posizione all’interno del server o sarà semplicemente irraggiungibile per qualche problema tecnico. Inoltre avrete un caricamento della pagina più omogeneo in quanto risiede tutto sullo stesso server. E’ però un metodo che se vogliamo è più faticoso e noioso soprattutto quando avete a che fare con tante immagini ma questo aspetto andrebbe trascurato se non altro per educazione.

Utilizzando il secondo metodo, molto più veloce e sbrigativo, quello dell’hotlink in sostanza, rimanderete sempre all’immagine che risiede sul server dove è ospitato il sito dove l’avete trovata. Questo, in parole povere, si traduce nel fatto che se un giorno quel sito non dovesse essere più raggiungibile per qualsivoglia motivo o dovesse semplicemente spostare la disposizione dei file, l’immagine sulla vostra pagina web non sarà più visualizzabile. Inoltre tutte le volte che qualcuno vorrà visualizzare la vostra pagina per vedere quel contenuto dovrà fare una richiesta al server dove questo risiede che nel restituirglielo consumerà della banda oltre che del tempo e delle risorse.

E’ ovvio che con questo secondo metodo andrete a rubare della banda, oltre che dello spazio e delle risorse da un server che non vi appartiene e questo non è bello né certamente educato.

Come posso proteggermi dall’hotlink

Ovviamente adesso l’idea che vi ballonzola per la testa sarà quella di come proteggersi dall’hotlink delle immagini in modo da non vedere quantità di banda sprecate per persone che se tutto va bene neanche conoscete. Per fare tutto ciò basterà modificare il file .htaccess della cartella dove si trovano le vostre immagini. Se volete rendere la protezione attiva su tutte le immagini presenti sul vostro server allora modificate il file .htaccess presente alla radice (root) del vostro spazio web.

Le righe da aggiungere sono le seguenti:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?vostro_indirizzo_web.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]

Ovviamente al posto di vostro_indirizzo_web.com dovete inserire il l’indirizzo web del vostro sito che per esempio nel mio caso sarà davidesalerno.net. Se volte permettere l’hotlink delle immagini a più di un indirizzo web basta copiare la terza riga e modificandola con l’indirizzo del sito a cui volete garantire questo privilegio. Con le righe sopra garantirete la visualizzazione delle immagini anche a coloro che visitano il vostro sito con il campo page referrer vuoto. Questo capita spesso soprattutto a coloro che utilizzano alcuni firewall o programmi antivirus che per sicurezza cancellano queste informazioni tra quelle inviate dal vostro browser al server. Così facendo anche costoro potranno vedere le immagini senza problemi.

Se però volete ristringere al massimo le possibilità di hotlink delle vostre immagini potete togliere anche questo privilegio cancellando la seconda riga. A voi la scelta

Soluzioni per non fare hotlink

Come evitare di fare hotlink è facile a livello teorico. Basta caricare le immagini sul proprio spazio web e chi ha un sito con un proprio servizio di hosting credo sappia benissimo come fare. Per tutti gli altri, ovvero per tutti coloroche hanno un sito web o un blog su piattaforme gratuite (WordPress, Blogspot/Blogger, Splinder, Live Spaces ecc ecc) che a livello gratuito non offrono una quantià infinita di spazio, il consiglio è quello di caricare le immagini su servizi come DivShare e/o ImageShack per poi fare l’hotlink sul vostro sito web.

Così facendo non danneggerete nessuno perchè i servizi sopra indicati sono fatti apposta per questo e sarete sicuri che finché DivShare e ImageShack funzioneranno le vostre immagini saranno lì pronte per essere visualizzate.

19 pensieri riguardo “Come proteggere le tue immagini dagli hotlink e risparmiare banda

  1. Buona sera a tutti, vorrei “proteggere” le foto che andrò a pubblicare sul mio sito web, però sinceramente non ho capito come fare anche perchè non riesco ad individuare il file htaccess….grazie a tutti.

  2. Ciao avrei una domanda per te se è possibile .
    Io vorrei sapere come fare per far vcisualizzare un logo prima dell’indirizzo del sito nella barra dell’indirizzo (come hai te la DS nel quadrato nero ) e poi quando uno si salva il sito nei preferiti che ci sia il logo a contrastinguerlo e non il la E di internet explorer .
    Grazie anticipatamente e attendo un tuo post o un E-mail

    Grazie Ezio

    1. Tramite htaccess poi aggiungere le seguenti regole:

      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      RewriteCond %{HTTP_REFERER} !http://tuosito.com [NC]
      RewriteCond %{HTTP_REFERER} !^$
      RewriteCond %{HTTP_REFERER} !google\. [NC]
      RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
      RewriteCond %{HTTP_REFERER} !msn\. [NC]
      RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
      RewriteCond %{HTTP_REFERER} !feedbourner\. [NC]
      RewriteCond %{HTTP_REFERER} !images.google\. [NC]
      RewriteRule \.(jpe?g|gif|bmp|png)$ http://tuosito.com/nome immagine da mostrare a chi fa hotlink [L]

  3. Salve,e grazie per i preziosi consigli contro l’hotlinking.Infatti ho aperto il mio primo Blog su Blogger della Google,qualche giorno fà mettendoci alcuni dei miei disegni.Mi è però venuta l’idea che le mie “opere”,oltre che ad essere viste come vorrei che fossero,venissero copiate.Dunque mi sono messo alla ricerca di qualche soluzione per evitare che le mie immagini venissero copiate,o peggio ancora sfruttate!Sono quindi finito in questo sito(dopo aver eliminato immediatamente le immagini sul mio blog),che mi consiglia due soluzioni:DivShare e ImageShack.Sul secondo sono riuscito a caricargli un’immagine da me salvata sul pc;ma siccome il sito è in inglese,non ho capito come inviare l’immagine a sua volta sul mio blog in modo che non possa essere più a rischio plagio.Ti ringrazio per l’attenzione.Daniele.PS:in informatica sono una “schiàppa”.

  4. Buongiorno, ho letto questa interessante soluzione, infatti sono anch’io alla ricerca di una soluzione efficace per questo problema. Ho notato però che nell’articolo si dice che il file .htaccess deve essere presente in root; io invece ho controllato, non ce l’ho.. come posso procedere, dunque?
    Grazie 🙂

  5. @Romano

    Sinceramente non saprei… credo di si anche se il crawler di Google dovrebbe indicizzarle, però dovrebbe esserci qualche problema nel visualizzarle tra i risultati delle ricerche.

  6. Grazie per le preziose informazioni; mi domando però se non si corra il rischio di non avere le proprie immagini indicizzate da Google images, o sbaglio?

Rispondi