Cómo evitar que nos ‘roben’ nuestras imágenes

Desde hace algún tiempo, algunos ‘listos‘ están usando mi "contador para el día D" del Diablo 3 (que podéis ver en este mismo blog en los bloques laterales) sin pedir ni siquiera permiso.

No me habría importado para nada que lo usasen, pero por lo menos "pide permiso alma de cántaro". Y lo que más de "fastidia" (por no decir jode) es que además se atribuyen la autoría de dicho contador.

En fin, visto el panorama he decidido trastear con la configuración del servidor donde está alojada la aplicación que genera el contador del Diablo 3 para intentar pararles los pies a semejantes tontolabas (es que no tienen otro nombre) seguramente con la cara llena de acné y como única meta en sus cortas vidas de beneficiarse a la Jenny o ponerse ciegos de chocolate (y no precisamente Schuchart).

 

A todo este rollo se le conoce como "hotlinking".

El hotlinking es una maniobra bastante poco ética, por la cual, en un determinado sitio se muestran imágenes que están en otro servidor, o en otras palabras:

  • El servidor www.voydelisto.com tiene un hilo lleno de imágenes.
  • Sin embargo esas imágenes no están en www.voydelisto.com, si no que están en www.hormiguita.com. Lo único que hay en www.voydelisto.com es un "link" de este tipo: [img]www.hormiguita.com/contador.jpg[/img]
  • Esto quiere decir, que cada vez que se muestra una supuesta imagen en www.voydelisto.com, lo que está ocurriendo en la realidad es que el servidor de www.hormiguita.com está enviando (sirviendo) dicha imagen.

No se si lo sabréis, pero al igual que en muchas tarifas de móviles, cuando llegas a una determinada cantidad de MB descargados, pongamos 500 MB, o bien te tarifican los megas adicionales más caro o por el contrario tu velocidad de descarga baja muchisimo (64 KB, o 128 KB a lo sumo)

Bueno, pues aquí pasa algo parecido. Los hostings tienen un concepto llamado "Tasa de transferencia". Pongamos de 5 GB al mes.

Esto quiere decir, que solo puedes "servir" 5 GB de información al mes.

Si quieres más tasa de transferencia, pues paga más.

¿Y que ocurre cuando alcanzas dicha tasa de transferencia?. Pues sencillamente que ya no puedes "servir" más información, o lo que es lo mismo, tu sitio web queda totalmente "off-line".

Retomando el ejemplo anterior, ¿Cómo pensáis que estará el web-admin de www.hormiguita.com, sabiendo que www.voydelisto.com le está haciendo "servir" cantidades ingentes de datos?

Ya os lo digo yo, dando botes de alegría seguro que no 🙁

 

Bueno, al lio.

Lo que haremos es escribir una regla muy simple donde básicamente todas aquellas imagenes que sirve el servidor (valga laredundancia) solamente las servirá a las direcciones que nos interesen.Si aquella imagen se llama desde una dirección que no está en la regla,se muestra otra imagen.

Pues bien, al acceder a nuestro IIS tendremos que usar el URL Rewrite:


(Haz click para agrandar la imagen)

A continuación, añadiremos una nueva regla mediante la opción Add Rule(s)…

Se mostrará una ventana tal que así:


(Haz click para agrandar la imagen)

Escogeremos la opción por defecto, Blank rule y pulsaremos en el botón Aceptar.

Ahora vamos a definir la regla.

Lo primer es darle un nombre, por ejemplo: hotlink rule

Request URL: Matches the Pattern

Using: Regular Expressions

Pattern: .*.(gif|jpg|png)$

Ignore case: activado

Estos valores indican lo siguiente:

La regla se realizará cuando se cumpla el "patrón", usando para ello expresiones regulares.

(Puede hacerse una regla para que se lleve a cabo cuando no se cumpla el "patrón", pero no es este caso)

El patrón indica que se realizará para cualquier archivo con extensión gif, jpg o png

Además da lo mismo si se llama a la imagen con mayúsculas o minúsculas (de ahí que se active el ignore case)

A continuación entramos dentro del apartado "Conditions" que es donde se va a definir cuando aplicar la regla.

En este caso se han dado de alta 3 condiciones.

Las condiciones son de tipo {HTTP_REFERER} Esto le indica a nuestro servidor "quien esta llamando"

Pulsaremos en el botón Add y añadiremos las condiciones.

En nuestro caso las 3 condiciones son:

  1. ^$
  2. ^http://(.*.)?blogs.gamefilia.com/ollydbg.*$
  3. ^http://(.*.)?zonaforo.meristation.com/.*$

Las 3 condiciones son del tipo Does Not Match the Pattern

Esto quiere decir que cuando NO se cumpla ninguna de esas 3 condiciones, se servirá la imagen "mala"

Por último, en Action type seleccionaremos Rewrite

y en Rewrite URL seleccionaremos la imagen que queremos mostrar cuando no se cumpla la regla, en nuestro caso:

/images/hotlink1.gif

Aquí podéis ver toda la secuencia:


(Haz click para agrandar la imagen)

Resumiendo, que cuando se llame a cualquier archivo .gif, .jpg o .png desde una url distinta a las especificadas en las condiciones, en lugar de "servir" dicha imagen, lo que se servirá es la imagen www.hormiguita.com/images/hotlink1.gif

Por lo tanto, si desde www.voydelisto.com hay un post que tiene este código:

[img]www.hormiguita.com/contador.jpg[/img]

No se mostrará la imagen contador.jpg, sino que se mostrará la imagen hotlink1.gif

 

Bien, vemos si efectivamente funciona nuestra regla.

Vamos por ejemplo al blog de ivanete84

En principio, si inserto la imagen de mi contador del Diablo3 en dicha dirección, no debería mostrarse ya que la dirección del blog de ivanete84 es blogs.gamefilia.com/ivanete84 que no coincide con ninguna condición en nuestra regla….veamos…:


(Haz click para agrandar la imagen)

Y efectivamente, no se muestra la imagen del contador del Diablo3 y si la imagen hotlink1.gif

Bien, por lo menos, algo que hemos ganado 😀

 

Todo este proceso se puede hacer si editamos directamente el archivo web.config de nuestro sitio web, sin necesidad de usar el administrador del IIS. Para ello lo único que deberemos hacer es añadir una sección <rewrite> dentro de la sección <system.webServer>

Aquí un ejemplo:


(Haz click para agrandar la imagen)

Para los servidores que corren bajo un Apache en lugar de realizar la modificación en el web.config, lo que hay que hacer es realizarla en el archivo .htaccess y seria algo como esto:

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

Aquí encontraréis una página web que os generará el .htaccess con vuestra propia configuración.

 

Tags: hotlink, hotlinking, iis, htaccess, robar imagenes, avoid hotlink, evitar hotlink imagenes

Saludos.
mov eax,ollydbg; Int 13h