Cristalab

Evitar el hotlinking al estilo Cristalab

Por: _CONEJO + 01.09.2007

Porque sabemos joven claber que con evitar que te roben el ancho de banda no es suficiente y tú solo ansías venganza, este tutorial es para ti.

Finalidad del tutorial
Vengarnos y putear a todo aquel que intente robarnos nuestra preciada colección de fotos triple equis alojada en nuestro servidor, mostrando una imagen de reemplazo o directamente no mostrando nada.

Requisitos


¿Qué es el HotLinking?
HotLinking es enlazar recursos, principalmente imágenes pero cualquier otro tipo de fichero es aceptado, directamente desde la web original y mostrarlo en la nuestra, con el consecuente ahorro en ancho de banda. Algo así es lo que hace Cristalab con nuestros avatares (que cada uno tiene en su servidor), el avatar se muestra en Cristalab.com, pero realmente está en nuestro servidor, consumiéndonos ancho de banda a nosotros (¡Te demandaré por ello Freddie!). Muchos paneles de control tienen la opción de permitir o no el hotlinking, unos de una forma más completa y personalizable y otros cierran las puertas sistemáticamente a todo (incluso a nuestra querida Cristalab).

Para todos ellos, y para tí que te lo mereces, un tutorial paso a paso (¡juas!) de como evitar y personalizar el hotlinking.

Nuestro amigo el .htaccess
Ya hablamos del .htaccess aquí, así que leedlo o simplemente quedaros con la idea de que es un pequeño archivo de texto que permite configurar muchos aspectos de tu web. En cualquier caso, lo usaremos, junto con el módulo mod_rewrite para nuestros propósitos.

Modo de empleo
Variante A : Enemigos específicos
Esta es quizás la variante más divertida porque te permite darle a cada uno lo que se merece, sin embargo es más dificil detectar cuando ocurre, ya que primero tenemos que tener conocimiento de que alguien nos está robando una imagen y luego actuar en consecuencia. En ese caso tendremos un .htaccess de la siguiente forma (puede variar si ya tenemos algo en el archivo) :

Código :



RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?tuenemigo\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?otroenemigo\.net/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?cuantosenemigos\.es/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nomelinkees.jpg [L]



Evidentemente podemos hacer varios grupos y a cada uno mostrarle una imagen diferente (MWAHAHAHA!)

Variante B : Mierda para todos salvo para los amigos
Esta opción es la versión más despreocupada, ya que en principio bloqueamos a todos los que nos intenten robar una imagen y sólo dejamos a aquellos que nos interese permitirle el acceso.

Código :


RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?tusitio\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?cristalab\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?theninjabunny\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nomelinkees.jpg [L]



El código es MUY parecido al anterior, salvo por el ! de antes de las url's y después de {HTTP_REFERER}, que como se están imaginando significa negación y por tanto lo que hace es redirigir cualquier llamada a una imagen (salvo de esos sitios) a images/nomelinkees.jpg.

Código paso a paso

Código :

RewriteEngine On

Iniciamos el "rewrite engine", sólo es necesario hacerlo una vez al inicio del .htaccess

Código :

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?tusitio\.com/ [NC]

Le decimos qué sitios están exentos y pueden enlazarnos (parte clave el !)

Código :

RewriteCond %{HTTP_REFERER} ^http://(.+\.)?enemigo\.com/ [NC]

Le decimos que sitios deben ser casigados (parte clave la ausencia de !)

Código :

RewriteCond %{HTTP_REFERER} !^$

Con esto permitimos el enlace a todos los que no tengan un http referer (o encabezamiento en blanco), que pueden ser programas que enlacen directamente con nuestros recursos.

Código :

RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nomelinkees.jpg [L]

Con (jpe?g|gif|bmp|png) le indicamos el tipo de ficheros, podemos añadir mp3, wav, doc, odt, pdf, los que queramos pero si enlazan un archivo de audio esperarán un audio y no una imagen ¡Podemos grabar un mp3 y putearles por voz!

NOTA:
Al proporcionarles un archivo alternativo (images/nomelinkees.jpg) les estamos mostrando una imagen de nuestro servidor por lo que seguimos consumiendo nuestro ancho de banda pero obtendríamos unos minutos de diversión irreemplazables. Si quisiéramos no mostrar nada (y ahorrar ancho de banda, pero divertirnos menos) sólo tendríamos que usar esta línea en lugar de la última :

Código :



RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [L]



Nótese el -

Etiquetas hack

Comentarios | Enviar un comentario
Me parece un excelente tip, gracias _CONEJO.
Por: Carloz.Yanez
Con la última opcion podrias linkear a una imagen en otro servidor? Sería útil para subir la imagen de error a imageshack o similar.
Por: Lunatic Lycanthrop
Realmente ilustrativo, _CONEJO... Y con una mente maligna puede ser una gran alternativa !!!...
Riendo
Por: M@U
Excelente tip, esto si va a resultar muy util. miau
Por: Victor-Nael
Juas!!, muy buen tip Conejo
Por: XKlibur
Muy Bueno!! Util ! Y macabro a la vez
Por: JaLeRu!_blog
U_U muyyyy util Bien Bien bien ahi eh miau
Por: eldervaz
Excelente!
Por: Duilio_blog
Se ha detectado un fallo de seguridad en el popular navegador opensource Firefox. Concretamente se trata en un error en la validación de la entrada de usuario, ya que con el uso de resource:// con caracteres codificados, se podría acceder a direcciones no permitidas en la configuración de seguridad del navegador.
Por: Mozilla_blog
Buen tip! gracias
Por: PabloHdS
¿En qué consiste entonces la vulnerabilidad? Pues en que si en lugar de ..\ utilizamos ..\ la navegación a través de directorios (y el consiguiente acceso a ficheros locales de nombre conocido) sí es posible.
Por: enjoydasilence_blog
excelente tip bunny Guiño aún no lo pruebo pero gracias de anticipado
Por: enjoydasilence_blog
Muy bueno, jajaja

Estoy deseando ponerlo solo por dar la lata Riendo
Por: MorphX
Nueva interfaz vetusta Riendo Riendo Riendo Riendo Riendo Riendo Riendo
está bien para variar ejejeje parece mas pa estudiosos
Por: chevere_blog
Simplemente quería comentarles que gracias a este tutorial excelentemente explicado, he logrado eliminar por completo el hotlinking de mi sitio.
Nunca había tenido ese problema, cuando uno hace una web, trata de mostrar a los usuarios calidad y eso repercute en también calidad de imágenes, y es incómodo ver, los que saben perfectamente que están haciendo hotlinking, como usan tu server.
Por eso mis sinceras felicitaciones a toda la gente de Cristalab.
Por: Yeison_blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.