Como proteger tu blog contra el hotlinking

El hotlinking es el hecho de usar una imagen y publicarla fuera de su sitio fuente. Ej: si yo coloco una imagen en mi blog y alguien en vez de bajarla y subirla a su propio servidor solo la muestra pero cargadola o haciendo la peticion a mi servidor, eso es hotlinking.

Se usa mucho es blogs tipo planeta donde se copia todo directamente desde tus feeds. O en personas como el tal jim66 de taringa (tipo que odio) que solo copian el contenido y lo publican como suyo. Cual es el problema del hotlinking? Pues que esa imagen que se esta cargando desde tu servidor esta consumiendo tu transferencia mensual de datos. Cada hosting te da un monton fijo por mes. Aunque es verdad que hoy en dia con el abaratamiento  de costos los distintos hosting ofrecen cada vez mas transferencia mensual sigue siendo algo que tu pagas. Yo personalmente no me hago ningun problema porque mi hosting es godaddy y me da suficiente transferencia como para 20 paraisoslinux A mi todo lo que me molesta son los tipos que copian y pegan los post como si fueran suyos sin siquiera citar la fuente.

Hay varias soluciones contra el hotlinking pero yo he elegido proteger las imagenes usando el archivo .htaccess y ademas usando una imagen prediseñada podemos sacar alguna ventaja de esos sitios que siempre nos roban. Como? Pues cada vez que alguien que no esta autorizado a mostrar nuestras imagenes lo hace, en vez de aparecerle la imagen original le aparecera esto:

De esa manera los visitantes sabran que ese tipo nos esta robando. Pongamos manos a la obra. Lo primero sera que descarguen el archivo .htaccess que esta en el directorio raiz de tu blog. Seguramente tiene un contenido mas o menos asi:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Debes modificarlo y agregar luego de RewriteBase / las siguiente lineas:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http?://(www\.)?paraisolinux.com/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|jpg)$ hotlinking.jpg [L]

Debes cambiar la dirección de mi blog por la del tuyo. Y subir una imagen llamada hotlinking.jpg al directorio raiz como la que yo puse arriba, o busca una en google.
El problema aqui es que solo usas lineas las imagenes solo podran ser vistas desde tu propio blog. Pero que pasa con aquellos lectores que te leen desde google reader, blogs¡lines, google, etc? Para solucionarlo solo debes agregar condiciones de tipo RewriteCond con la direccion del sitio donde SI quieres que se vean las imagenes originales. Como ejemplo les dejo mi archivo .htaccess completo:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http?://(www\.)?paraisolinux.com/.*$ [NC]
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\.)?images\google\/.*$ [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} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png|jpg)$ hotlink.jpg [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Les gusto? Que les parece mi decision de implementar esto? Si alguien tiene algun problema con la visualizacion de imagenes que me avise asi lo agrego a la lista.

Fuentes: blogodisea y galder

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

10
Comenta!

avatar
Nicolás
Nicolás

Me parece genial, es cierto eso de que en algunas páginas los usuarios se dedican a hacer un copy-paste de todo el contenido sin indicar referencia y adjudicándose la autoria. Una excelente solución y de pasada tenes publicidad gratis. :up:

DOO
DOO

Disculpa tu creaste ese código o lo copiaste ????

Porque no veo ninguna referencia al creador del código, y como tu dices no te molesta que te usen la imagen sino a que copien el contenido….

Creo que reclamas de lo que tu mismo haces… y yo también lo hago pero no reclamo =P. Es mas creo que si copian tu contenido es porque es bueno y mientras a mas personas le llegue el mensaje mejor será…

SALUDOS

J0n1_1nc

Muchas gracias amigo me re sirvio

trackback

[…] mensual del sitio fuente. Es algo realmente molesto. Ya les habia mostrado una forma de proteger tu blog contra el hotlinking. Esa forma constaba en editar el archivo .htaccess bloqueando las imagenes para todos los sitios […]