Como evitar el hotlinking de imágenes
Desde hoy, no más hotlinking de las imágenes que tengo alojadas en el servidor. A partir de ahora todo el que quiera aprovecharse del ancho de banda que pago con mi dinero va a encontrarse con esto. ;-)
Si no os suena mucho esto del Hotlinking lo explico rápidamente:
Hotlinking es el arte (o las malas artes) de mostrar una imagen alojada en otro servidor en tu propia web. De esta forma si yo por ejemplo pongo aquí un
<img src="http://www.google.com/intl/en_ALL/images/logo.gif">
se mostraría en mi página el logotipo de Google, pero los 8Kb que pesa la imagen se transferirían desde los servidores de Google, no desde aquí. ¿Cual es el problema? Pues con Google no pasa nada porque ellos están podridos de pasta y no importa utilizar un poco de su ancho de banda pero con blogs personales y páginas modestas, donde el responsable es el que tiene que pagar todos los años su hosting, la cosa cambia. Por lo general, para cada página hay un límite de transferencia mensual que no puede ser excedido. Si yo alojo una imagen que pesa 100KB aquí y una página web con 1000 visitas al día hace un hotlinking de ella, hay 100KB que se transifieren desde mi servidor cada vez que alguien visita una página ajena. Haciendo cuentas: 100KB x 1000 visitas al día x 30 días al mes: ¡3000 Megabytes al mes de ancho de banda robado! 3 Gigas no son nada despreciable, ¿no os parece?
Por eso he tomado esta medida, para que la gente haga un uso responsable de la información alojada en otras webs. Conseguirlo es muy facil si utilizais Apache, no hay más que utilizar mod_rewrite. Para ello teneis que editar el fichero .htaccess y añadir esto:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} \.(png|gif|jpeg|JPG|jpg)$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !TUDOMINIO\.com [NC]
RewriteCond %{HTTP_REFERER} !DOMINIOAMIGO\.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines\.com [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule \.(png|gif|jpeg|JPG|jpg)$ http://www.TUDOMINIO.COM/nohotlinking.jpe [NC,L]
Obviamente teneis que cambiar TUDOMONIO por lo que os corresponda. La linea DOMINIOAMIGO es opcional y podeis usarla para permitir a “dominios amigos” hacer hotlinking de las imágenes que colgueis. Las otras 3 lineas RewriteCond son para permitir a Bloglines y a Google mostrar correctamente vuestras imagenes. Ojo! La extension de la imagen a la que querais redirigir a los hotlinkers no puede ser ninguna de las que hayais especificado antes, por eso pongo “jpe”.
Ahora solo queda echarnos unas risas cuando nos enlacen una imagen… ;-)
[Este post ha sido patrocionado por Goatse]



January 14th, 2007 at 12:50am
cabron….:/
January 14th, 2007 at 1:08am
Muy interesante, sugiero una modificacion, y es – si la imagen está en tu mismo dominio- cambiar la última linea por:
RewriteRule ^(.*)$ images/cancel_f2.png
Con esto conseguirás que puedas poner cualquier extensión de imagen, y no enviar un redirect al navegador.
January 14th, 2007 at 5:11am
¿para punto es que habria que cambiar?
Creo que para los que tienen cpanel hay una opción para esto.
Yo lo tengo pero no lo uso.
January 14th, 2007 at 9:49am
¿Qué imagen te copiaron en el foro ese? xD
January 14th, 2007 at 12:00pm
Como evitar el hotlinking de imágenes…
Desde hoy, no más hotlinking de las imágenes que tienes alojadas en el servidor. A partir de ahora todo el que quiera aprovecharse del ancho de banda que consume mis imágenes y demás cosas, va a encontrarse con esto. ;-)
Por cierto, conseguirlo es …
January 15th, 2007 at 2:42am
joder cambia la imagen se me han revuelto las tripas al verla
January 15th, 2007 at 8:44am
xDDD Es que pretendo que le pase eso a todo el que enlace las imágenes, para que las borre. Si pongo un simple cartel de “Prohibido hotlinking” a lo mejor no se dan cuenta o pasan de arreglarlo. De esta forma, verás como lo quitan enseguida… (ho ho ho (risa malevola))
January 15th, 2007 at 10:47am
Yo no vuelvo a picar y ver la puta imagen asquerosa ésa :P
Últimamente la peña está haciendo hotlinking sin parar… y robo de contenidos y…
January 15th, 2007 at 4:37pm
Venga, venga, no seas vinagre y comparte tus fotos, que te estás volviendo de un proteccionista que ni los gringos…
January 16th, 2007 at 9:42pm
Sólo decirte que al leer hoy el post sobre el arranque del Ubuntu, desde Nongoo, que es mi lector de feeds online, aparece el puto goatse…
Así que si me le añades en las excepciones junto a Bloglines y Google, mejor :)
January 16th, 2007 at 11:27pm
Añadido! ;-)
January 17th, 2007 at 1:13pm
Gracias, espero no tener que volver ese culo peludo… :)
January 19th, 2007 at 2:18pm
Ummmmmm
Estoy con lordpsico, la imgen es demasiado fuerte, es cierto que mucha gente usa el famoso goatse contra el hotlinkin’ yo no la usaría:
Hace muchos muchos años, empecé en esto de internet, y todo eso que cuentas del ancho de banda me sonaba a chino, a matraca de informático, y sé positivamente que mucha gente que empieza ahora le pasa lo mismo, por lo que enlazan todo sin mala intención, y aunque la ignorancia de la “ley” no exime su culpa, tampoco es para tanto.
Yo apostaría mejor por una imagen informativa, donde explicara que sablear ancho de banda es robar.
Pero es que yo prefiero enseñar que castigar :)
January 20th, 2007 at 9:06pm
Me da que si alguien se molesta, para fastidiar podría seguir usando la imagen del culo para seguir robándote ancho de banda, no?
February 1st, 2007 at 8:05pm
¿No hay una manera de hacer el rewrite desde el propio apache.conf?
February 1st, 2007 at 8:06pm
Y otra duda más (perdón por el doble post ._.) ¿hay alguna manera rápida de ver en los logs si te están haciendo hotlinking? ¿Hay alguna aplicación que se lea los logs del apache para hacerlo automáticamente? ¿sabes si el awstats lo hace?
Gracias por todo :)
February 1st, 2007 at 8:14pm
Pues la verdad es que no tengo ni idea Reboot, casi no se utilizar el Apache. Sorry…
July 8th, 2008 at 10:43am
[...] Cómo evitar el hotlinking de imágenes. [...]
June 1st, 2009 at 9:13pm
Gracias por el código. Lo usaré en la nueva web.