Evitar el robo de imágenes (hotlinking)

31/10/2008 17:16

Se llama hotlinking al robo de objetos de una web enlazándolos directamente sin alojarlos en tu propio servidor, siendo el caso más común el de las imágenes. Es muy común encontrarte con que una web ha puesto una imagen de tu blog conservando el mismo enlace, con lo que pierdes ancho de banda en tu servidor y no obtienes ningún reconocimiento por ello, a menos que hayas usado marcas de agua en la imagen.

Es considerado una mala práctica. De hecho es una norma no escrita que todos los buenos bloggers no deben hacer hotlinking, pero aún así hay quien no la cumple, bien sea por desconocimiento, por vagueza, o por simple malicia.

Las marcas de agua son una solución eficaz, aunque no impides el consumo de ancho de banda de tu servidor, y son difíciles de implementar, o al menos más difícil que unas simples reglas en el htaccess.

Con estas instrucciones no evitarás que te hagan hotlinking, pero al menos conseguimos que quien nos lo haga muestre la imagen que queramos, sea cual sea la que nos ha robado. La imagen puede ser todo lo maliciosa que queramos, porque además nos sentimos con el derecho y la autoridad de hacerlo, ya que, recordemos, quien hace hotlinking está incumpliendo una norma de convivencia virtual.

Por lo tanto podremos hacer que estos hotlinkers muestren desde una foto pornográfica (no recomendable) hasta una sencilla imagen bien grande con la url a nuestra web (es mi caso).

Edita el .htaccess de tu servidor, y añade estas líneas:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?javierperez\.eu/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?bloglines\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REQUEST_FILENAME} !hotlink.png$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://javierperez.eu/img/hotlink.png [L]

Como podéis ver, esa es la configuración que tengo en el servidor de mi blog. Tendréis que sustituir javierperez.eu por la url de vuestro sitio.

En la primera línea activamos el módulo rewrite de Apache (tendréis que habilitarlo en vuestro servidor si no lo estuviera ya con a2enmod). En la segunda línea indicamos que el sitio *.javierperez.eu tiene permitido visualizar las imágenes de nuestro sitio. Normal, quiero que en mi sitio se vean las imágenes de mi sitio. En la tercera y cuarta línea, además, habilitamos a *.google.com y *.bloglines.com para que puedan mostrar mis imágenes. Y en la quinta habilitamos también a que se puedan visualizar las imágenes en un navegador introduciendo la url completa de la imagen en la barra del navegador.

La penúltima línea indica que la imagen hotlink.png es la única que permitimos que nos roben.

Y finalmente, la última línea dice que el resto de sitios, pidan la imagen que pidan, siempre verán la misma, la que yo diga, en este caso http://javierperez.eu/img/hotlink.png

Úsalo en tu sitio web, y consigamos entre todos que esta práctica deje de usarse.


01/11/2008 | Qtpaxa
avatar de Qtpaxa
Genial post!! A ver si es verdad y a fuerza de evitar el hotlinking se deja claro que cada uno cuelgue las cosas en su propio servidor.

Saludos!!

02/11/2008 | Quintacho
avatar de Quintacho
Claro que, cuando alguién envía un post, a su blog desde un servicio rss como Google Reader, muestra todos los datos de tu blog y, además, la posibilidad de que alguien más se suscriba a tu RSS.

Bueno, me pasó que en alguna ocasión hice eso, mande un post desde Google Reader y, cuando al día siguiente entré y ví un mensaje que decía que la imágen habia sido robada del sitio X, simplemente eliminé el post, bien, perdí yo la oportunidad de compartir con mis lectores (aunque no sean muchos) algo que me pareció interesante y, me pregunto, ¿perdió algo el autor del post original? Quizá solo la oportunidad de que alguien más lo lea.

02/11/2008 | Javier Pérez
avatar de Javier Pérez
Quintacho, si ves una imagen en una web y la quieres poner en tu web, lo mejor será que la subas a tu servidor y la enlaces a éste. Aunque te prevengo de que te puede caer una demanda si usas una imagen con derechos de autor.

Lo que se premia en Internet es los contenidos originales, no el copiar y pegar el trabajo realizado por los demás, y mucho menos robarles además ancho de banda.

04/11/2008 | antsanch
avatar de antsanch
Creo que hay algo mal pero en todas las imagenes me sale la del hotlink.png en todos los posts

04/11/2008 | Javier Pérez
avatar de Javier Pérez
antsanch, ¿te refieres a este blog o a tu htaccess?
Yo veo perfectamente todas las imágenes de este blog, en este blog.

Si te refieres a la implementación que has hecho tú, comprueba que tu navegador no te esté visualizando las imágenes de la caché, ya que podría guardar en caché la versión visualizada en una url no permitida, y mostrarte la misma imagen una vez dentro de la url que sí tiene permiso para visualizar las imágenes originales.

07/11/2008 | Anónimo
avatar de Anónimo
Deberías verificar que no estas capando a robots, tipo googleimage, no ?


07/11/2008 | Javier Pérez
avatar de Javier Pérez
Anónimo, el robot googlebot-image está deshabilitado, como puedes ver en mi robots.txt:javierperez.eu/robots.txt

¿Para qué habilitar el robot de imágenes si no quiero que me quiten ancho de banda usando mis imágenes? :)

Normas de uso
El autor del comentario se hace responsable del contenido de éste. En caso de que el autor del comentario infringiera alguna ley, se ofrecerán todos los datos necesarios a las autoridades pertinentes para que tomen las medidas oportunas.
Se debe escribir correctamente en el mismo idioma del artículo que se comenta. En caso contrario podría ser eliminado.
El comentario debe ceñirse a la temática del artículo.

En la siguiente lista de palabras, haz clic en el:
  1. evitar
  2. el
  3. robo
  4. de
  5. imagenes
  6. hotlinking
Esta pregunta es para evitar comentarios spam. Perdón por las molestias.