webmaster

Evitar el hotlinking

Evitar el hotlinking

Vamos a ver como evitar el hotlinking. El hotlinking es la acción de usar una imagen de una página web en otra directamente (con la url del sitio original).

¿Cual es el problema del hotlinking? El problema esta en que esa imagen aunque la usen en otra web se esta descargando desde tu servidor y se esta consumiendo tu transferencia mensual de datos (Cuando contratas un host, tienes asignado una cantidad de MB que se pueden descargar de tu web cada mes y si los superan cortan el acceso a tu web). Por lo tanto no nos interesa que usen nuestras imágenes en otras webs.

Para evitar esto podemos indicarle al servidor web que no de las imágenes (o que de otra que le especifiquemos) si no es solicitada cuando estén mirando una de las webs que le indiquemos.

Pero aquí surge otro problema: si solo permitimos que nuestros sitios web accedan a nuestras imagenes, entonces las personas que usan un lector de rss online (tipo google reader, netvibes, etc) no se les mostrarán las imágenes de tus artículos. Por lo que tendremos que añadir también las webs de los principales lectores de rss online.

Para ello tendremos que poner en el archivo .htaccess las siguientes líneas (acordaros de sustituir el dominio de mi blog por los vuestros):

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http?://(www.)?add.my.yahoo.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?bloglines.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?feedlounge.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?feedness.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?feeds2.feedburner.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?feeds.feedburner.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?bing.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?google.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?google/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?imagesgoogle/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?live.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?feedburner.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?netvibes.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?newsalloy.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?newsgator.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?yahoo.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?yahoo.es/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://(www.)?blog.intropedro.es/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png|jpg)$ http://img24.imageshack.us/img24/4590/hotlinking.gif [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Con la orden RewriteRule indicamos las extensiones de las imágenes que no queremos servir al exterior y también la imagen que serviremos cuando nos pidan una imagen desde otra web. Aunque la imagen que dará el servidor web en vez de la pedida puede estar en nuestro servidor, os recomiendo ponerla en otro lado para no consumir nuestro ancho de banda.

Además os pongo unos cuantos ejemplos de imágenes hotlinking para que las utiliceis.

Ejemplo de hotlonking

Ejemplo de hotlinking

Ejemplo de hotlinking

Ejemplo de hotlinking