Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti. Basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi : chi fa questo è solo un miserabile e un perdente. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni, come dovrebbe essere in un paese civile e acculturato, potete farlo tranquillamente.

Evitare che altri siti linkino le nostre immagini o i nostri files: come prevenire l’hot-linking con htaccess

Autore: Giovanni Bernardo | Data pubblicazione: 6 aprile 2009
Categorie: Programmazione Web Develop

Una pratica assolutamente scorretta nel web è quella di linkare direttamente dal proprio sito i files (programmi da scaricare, immagini ecc) risiedenti su un altro sito. Questo ovviamente oltre a “ingolfare” inutilmente il sito “derubato” (che riceverà traffico pur non essendo visitato), causa anche una perdita di visitatori nel caso si linkino programmi autoprodotti che si vuole pubblicizzare (è capitato ad esempio qui con Gargaroz, molti siti ovviamente mantenuti da sprovveduti linkavano il download diretto alle vecchie versioni, quando qui sul sito ufficiale era presente la versione nuova), questo ovviamente è altamente controproducente sia per gli sviluppatori, che cercano di mantenere certi standard qualitativi, sia per i navigatori stessi, che ignari perdono tempo su siti “pirata” quando rivolgersi a quello ufficiale sarebbe sicuramente più vantaggioso, soprattutto in termini di supporto.

Ebbene, come fare in modo da evitare tutto questo? Il webserver Apache ci mette a disposizione uno strumento molto semplice quanto estremamente potente: il file .htaccess, di cui abbiamo già discusso in un precedente articolo. Tramite opportune regole è possibile fare in modo che il link ai files venga negato se proviene da domini esterni a quello in cui il file risiede. In pratica il metodo per creare tale file è sempre lo stesso:  col blocco note apriamo un file vuoto salvandolo come “a.htaccess” (metterci anche le virgolette, altrimenti viene aggiunta l’estensione txt), ci scriviamo dentro le regole, lo uploadiamo sul server nella directory principale e lo rinominiamo come .htaccess (ricordo che in windows non è possibile dare stringa nulla come nome di un file)

Un’implementazione abbastanza semplice può essere la seguente:

1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.settorezero.com/.*$ [NC]
RewriteRule .*\.(zip|exe|doc|pdf)$ http://www.settorezero.com/docs/warning.txt [L]
</IfModule>

Spiegazione:

La riga 1 si assicura che il modulo mod_rewrite di Apache sia attivo, se si, allora vengono applicate le regole

La riga 2 avvia il rewrite engine, ovvero il motore di Apache che permette la riscrittura degli url

Le righe 3 e 4 verificano le condizioni per le quali deve valere la regola di riscrittura definita alla riga 5. In particolare:

La riga 3 controlla che il dominio di provenienza non sia vuoto (ad esempio se digitiamo l’indirizzo direttamente nella barra di navigazione del browser)

La riga 4 controlla che il dominio di provenienza non inizi per http://www.settorezero.com/ (ovviamente questa parte andrà modificata col vostro dominio) – il flag [NC] indica che il pattern di ricerca non deve essere case-sensitive

La riga 5 dice ad Apache di riscrivere tutti gli indirizzi appartenenti al pattern e che finiscono con le estensioni zip,exe,doc e pdf come http://www.settorezero.com/docs/warning.txt. In pratica se da un dominio esterno a settorezero.com viene linkato direttamente un file avente queste estensioni, il dominio esterno si ritroverà in uscita il file warning.txt (che nella fattispecie contiene un testo che invita a non praticare l’hot-linking e a rivolgersi al sito ufficiale).

L’ultima riga può essere sostituita con:

RewriteRule .*\.(zip|exe|doc|pdf)$ - [F]

che causerà un errore 403 (accesso negato).

Questa pratica qui descritta, la maggioranza delle volte, viene utilizzata per evitare l’hot-linking delle immagini (desidero segnalare qui una gustosa notizia per farvi capire a volte quanto può essere dannoso fare una cosa del genere). Per fare questo possiamo ricorrere a qualcosina di molto più elaborato:

1
2
3
4
5
6
7
8
9
10
11
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.settorezero.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !images.google\. [NC]
RewriteCond %{HTTP_REFERER} !msn\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{HTTP_REFERER} !feedburner\. [NC]
RewriteRule .*\.(gif|jpg|jpeg|png)$ http://www.settorezero.com/nohotlink.jpe [L]
</IfModule>

da questo settaggio possiamo renderci conto che: le immagini saranno visualizzate soltanto dal nostro sito e dagli altri consentiti (google, images.google ecc, è difatti bene non escludere questi, perchè gli utenti potrebbero trovare il nostro sito anche facendo una ricerca immagini), qualsiasi tentativo di inclusione di una nostra immagine, restituirà l’immagine http://www.settorezero.com/nohotlink.jpe (da notare: ho dato l’estensione JPE -che è consentita- altrimenti JPG o JPEG come impostato dalla regola, non sarebbero visualizzati)

Articoli che potrebbero interessarti

L'articolo ti è piaciuto o ti è stato utile per risolvere un problema? Supporta e mantieni in vita questo sito, ci basta soltanto un caffè o una birra.
Se desiderate che settorezero continui a rimanere gratuito e fruibile da tutti, non copiate il nostro materiale e segnalateci se qualcuno lo fa

Puoi lasciare un commento, o un trackback dal tuo sito.

  1. Ancora nessun commento.

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
settorezero.com e il logo Zroid™ ©2007÷2012 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.