La prima volta l’ho presa con filosofia, la seconda mi ci sono divertito un po’ sopra, la terza mi ha abbastanza infastidito, la quarta è stata la goccia che ha fatto traboccare il vaso. L’agitazione che il deep-linking ha provocato in me è diventata superiore alla mia leggendaria pigrizia, così mi sono deciso a trovare una soluzione più o meno definitiva al problema.

Ma quale sarebbe il problema? Cos’è questo deep-linking? Il mio caso, deep-linking di immagini, è definito da Wikipedia come “collegamento di immagini o di altre risorse che non costituiscono una pagina, come brani musicali o software. La sintassi dell’HTML permette infatti di inserire le immagini con l’uso del tag specificandone come origine un URL qualsiasi, che può quindi essere locale o proveniente da un altro sito. Questo caso è il più controverso perché sfrutta in modo passivo lo spazio disco e la connessione del sito remoto senza che quest’ultimo ne ricavi alcun vantaggio, anche solo di visibilità” (http://it.wikipedia.org/wiki/Deep_linking#Deep_link_di_immagini).

Furbacchione

In pratica, succede che qualche webmaster/blogger/minchione, solitamente nuovo della situazione (o palesemente in malafede, ma preferisco pensare che sia poco competente), anzichè salvare le immagini sul suo bel server web preferisce utilizzarle da remoto. L’HTML permette di farlo in modo veramente semplice:

E perchè mai questa pratica è da evitare? Per prima cosa ci sarebbero le questioni di copyright, per cui quello che è mio non lo usi se non te lo dico esplicitamente. Nel mio piccolo cerco sempre di chiedere il permesso per utilizzare immagini non mie e cerco sempre di citare la fonte. Non dico che lo faccio sempre, ma cerco di avere questa buona abitudine.

Il problema più grosso, però, è un altro: attraverso questa pratica, riprendendo la definizione di Wikipedia, si “sfrutta in modo passivo lo spazio disco e la connessione del sito remoto“. In parole povere, ogni volta che la pagina in questione viene vista da qualcuno, quel qualcuno mi succhia un po’ di banda, e questo non mi piace. Non mi piace perchè la mia banda la uso come cacchio mi pare e mi piace ancora meno perchè questo blog si regge sui 256kbps che Tin.it mi fornisce in upload, condivisi con il cazzeggio mio e dell’intera famiglia.

Come fare dunque ad arginare il fenomeno? Fortunatamente il buon vecchio Apache e il suo Rewrite Engine mi sono stati d’aiuto. Cercando al volo su google, ho trovato un’ottima guida che mi ha permesso, in 4 (quattro!) righe di configurazione, di annullare il problema:

RewriteEngine on
RewriteCond %{REQUEST_URI} !deeplink.gif$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?matteomoro.net/.*$
RewriteRule \.(gif|jpg|png)$ /deeplink.gif [L]

Come funzionano queste regole? In poche parole, per ogni oggetto con estensione .gif, .jpg o .png richiesto al mio webserver per il dominio matteomoro.net, restituisce http://www.matteomoro.net/deeplink.gif, che è un’immagine trasparente di 1×1 pixel. Questo a patto che la richiesta non abbia come referrer qualcosa che sta nel dominio stesso. In questo modo, le immagini che metto nelle mie pagine sono perfettamente visibili, se però uno cerca di usarle da remoto, otterrà un misero quadratino trasparente, che mi causerà solo 47 bytes di traffico. Ottimo.

Effetti collaterali? Pochi, per quanto mi riguarda, ma ci sono. Non saranno solo i furbacchioni a non “vedere” più le mie immagini: le stesse regole valgono anche per i motori di ricerca specializzati, ad esempio Google Images, che quindi non indicizzeranno le mie foto. Poco male, per un sito come il mio. Sono convinto che, mettendo qualche regola un po’ più elaborata, si possa concedere l’accesso ai motori ovviando anche a questo problema, ma nel mio caso questa soluzione è più che sufficiente.
Ai quattro artefici di questo post avrei mandato volentieri almeno una mail, se solo avessi trovato uno straccio di indirizzo nei rispettivi blog. Sarà per la prossima volta, forse.


Ti è piaciuto l'articolo, eh? OFFRIMI UNA BIRRA! (è sufficiente essere iscritti a Paypal o avere una carta di credito, anche Postepay)

Condividi :
  • OKNotizie
  • Fai.Info
  • Diggita
  • ZicZac
  • Kipapa
  • Upnews
  • NotizieFlash
  • Plim
  • Pligg
  • Wikio IT
  • Segnalo
  • del.icio.us
  • Technorati
  • Digg

Articoli consigliati...

4 commenti per questo articolo

  1. 06/06/2007, 08:12Daniel (permalink)

    Giusto ieri mattina stavo lavorando sulla stessa cosa…puoi modificare le regole come riportato qui sotto per lasciar passare google (puoi farlo anche con gli altri motori ampliando le regole) e permettere anche agli utenti di vedere le immagini nella sua cache. In più mettendo la prima condizione che verifica il tipo di file si dovrebbe evitare di smandruppare anche le altre (farle verificare) per i file che non rientrano tra quelli che vogliamo bloccare (ma questo lo devo verificare).

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} .*jpeg$|.*jpg$|.*gif$|.*png$ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://spotmusic.net/ [NC]
    RewriteCond %{HTTP_REFERER} !^http://daniel.spotmusic.net/ [NC]
    RewriteCond %{HTTP_REFERER} !google\. [NC]
    RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
    RewriteCond %{REQUEST_URI} !^/immagini/nohotlink.gif [NC]
    RewriteRule (.*) http://daniel.spotmusic.net/immagini/nohotlink.gif [R]

    Ciao!

  2. 06/06/2007, 11:52e-tip (permalink)

    Vedo che il 4 ha salvato l’immagine su imageshack

  3. 06/06/2007, 20:36Matteo (permalink)

    @Daniel:

    Ottimo, stasera faccio un paio di prove e vediamo se sputtano tutto.

    @e-tip:

    Meglio per lui, d’altronde non mi aspettavo che un 40enne che scrive con le cappa capisse dei concetti così complessi :)

  4. 06/06/2007, 20:43Matteo (permalink)

    @Daniel:

    Prove effettuate e Wordpress sembra funzionare ancora. Adesso le regole che ho messo sono queste:

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !deeplink.gif$
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?matteomoro.net/.*$
    RewriteCond %{HTTP_REFERER} !google\. [NC]
    RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
    RewriteRule \.(gif|jpg|png)$ /deeplink.gif [L]

    ciao.
    Matteo

Indirizzo per il trackback | Segui i commenti a questo articolo

Partecipa alla discussione:

Feed RSS Commenti Segui la discussione via RSS! Non sai cos'è un feed RSS? GUARDA QUA!

C'è qualcuno che parla di questo articolo?

Indirizzo per il trackback | Segui i commenti a questo articolo