Evitar hotlinking de sitios específicos

Muchos webmasters y usuarios de foros tienen la mala costumbre de copiar contenidos de otros sitios incluyendo directamente las imágenes, esta práctica se denomina hotlinking, es decir cuando una imagen copiada se muestra en un sitio X pero en realidad está alojada en el servidor del sitio Y.

Esto le puede generar problemas al dueño del sitio Y, su página podría dejar de funcionar por altos consumos de ancho de banda, cargar más lento por un excesivo consumo de recursos e incluso generar una deuda de varios cientos de dólares por sobrepasar los límites de transferencia contratados al hosting.

¿Cómo evitar el hotlinking?

Quienes dispongan de un servidor con Apache pueden hacerlo fácilmente desde el archivo .htaccess. Básicamente hay 2 opciones, bloquear las imágenes para que sólo se muestren en una determinada lista de sitios o lo contrario, es decir, permitir que se muestren en todos los sitios menos en los que nosotros indiquemos.

La primer opción también se puede configurar rápidamente desde un cPanel, si está instalado, pero no es la más recomendada ya que puede generarle problemas a los usuarios que nos siguen desde los lectores de feeds, pues no podrían visualizar las imágenes. Para evitar esto habría que crear una «lista blanca» de sitios que incluya a todos los lectores de feeds, por eso en muchos casos resulta más conveniente configurar una «lista negra» de sitios donde las imágenes no podrán ser visualizadas.

Código para evitar el hotlinking de algunos sitios específicos:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?taringa\.net/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?wordpress\.com/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ – [F]

Se pueden agregar todos los sitios que se quiera, en este caso se estarían bloqueando Taringa y todos los blogs de Blogger y WordPress.com. La última línea del código es la que indica los tipos de archivos que serán bloqueados (imágenes, audio, video, etc).

Si deseas agregar más sitios, el código debería de quedar algo así:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?otrositio\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?otrositio\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?taringa\.net/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?wordpress\.com/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ – [F]

Si deseas mostrar una imagen en especial cada vez que te hacen hotlinking, deberías sustituir la última línea por:

RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://i.imgur.com/d4Es4.jpg [L]

Esta información la obtuve de altlab.com donde además tienen un hotlink checker para verificar si el bloqueo está funcionando correctamente. Ten en cuenta que deberás bloquear el dominio altlab.com para que funcione y además borrar la caché del navegador ya que podría engañarte y hacerte creer que el código está mal colocado:

hotlinking
Verificando si el hotlinking funciona

En altlab.com podrás encontrar más información sobre el hotlinking (en inglés), si deseas leer un buen tutorial pero en español te recomiendo este post de Neri donde se comenta lo mismo.

¿Y en Blogger.com se puede evitar el hotlinking?

Las imágenes de Blogger se almacenan en Picasa y la única forma de evitar que sean copiadas es borrarlas y volverlas a subir, para que sus URLs cambien y ya no se muestren en el otro sitio. Sin embargo hay otra opción, editarlas online y agregarles algún mensaje gracioso :D los detalles de este excelente truco los puedes encontrar en Pizcos.net.

1 comentario en «Evitar hotlinking de sitios específicos»

  1. Hey Estuvo interesante el post. Lo último es lo mejor. Siempre analizo si una imagen se carga muchas veces. Pero tengo presente que Yo la puedo editar o borrar cuando quiera. je je.

    Interesante tambien la parte de bloquear taringa. Pues estoy empezando a ver fotos enlazadas ahí.

    gRacias por esta info.

    Responder

Deja un comentario