Hotlink

Hotlink

Hoy en día con la velocidad que crece la internet y la poca educación informática de los usuarios que navegan en ella es muy común que nos terminen haciendo hotlink de nuestras imágenes y con ello hacernos perder ancho de banda de nuestro sitio.

¿Que es el hotlink?

Para los que no lo saben, el hotlink es la practica que hacen algunas personas de enlazar directamente a las imágenes de otros sitios con lo que roban el ancho de banda de esos sitios en lugar de ellos mismos almacenar esas imágenes en sus propios servidores o en sitios públicos (imageshack, tinypic, etc.).

Esta practica es algo muy molesto para los que tienen un servidor de pago, ya que ellos han pagado por ese ancho de banda y otros se empeñan en sacar provecho de esas imágenes hospedadas en nuestro servidor y poco a poco consumir una gran cantidad de ancho de banda con el simple hecho de mostrar esa imagen.

¿Como evitar el hotlink?

Para evitarlo la forma mas rápida y sencilla es editar el .htaccess (solo servidores Apache) para evitar que se pueda ver nuestra imagen en cualquier otro sitio donde las hayan enlazado directamente.

Nota: Solo funciona para los que tienen contratado un servidor, no funciona en servicios gratuitos.

Es posible que ya exista un archivo .htaccess en la raíz de nuestro sitio, de no existir lo creamos y lo abrimos para editarlo y debería quedar así: (las lineas con # son solo comentarios)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Primero verificamos que tenemos el modulo de reescritura activado en nuestro Apache
# de lo contrario primero debemos activarlo.
<IfModule mod_rewrite.c>
 
# Activamos el motor de reescritura.
RewriteEngine On
 
# Aplicamos las condiciones que se deben de cumplir para hacer la reescritura en este
# caso usando expresiones regulares, no mostrara nada si no es nuestra pagina.
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://.*?TuSitio.com(/)?.*$ [NC]
 
# Regla a cumplir, todos los archivos gif, jpg, jpeg, png y bmp, no se muestra nada
# desde nuestro servidor.
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ - [R,NC,L]
</IfModule>

En este código solo debemos editar TuSitio.com por la dirección de nuestro sitio y de esta forma logramos que no se puedan visualizar nuestras imágenes desde cualquier otro sitio.

Si lo que queremos es permitir que algunos sitios tengan acceso como puede ser Google Reader, Google Image o FeedBurner, solo se debe de agregar el sitio de la misma forma que TuSitio.com, por ejemplo: (las lineas con # son solo comentarios)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://.*?TuSitio.com(/)?.*$ [NC]
 
# Valido para http://google.es/, http://mail.google.com/,
# http://www.google.com/reader, y otras combinaciones.
RewriteCond %{HTTP_REFERER} !^http://.*?google.*$ [NC]
 
# Valido para http://feedburner.com/, http://www.feedburner.com/,
# http://feeds2.feedburner.com/El_Happy, y otras combinaciones.
RewriteCond %{HTTP_REFERER} !^http://.*?feedburner.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ - [R,NC,L]
</IfModule>

De esta forma logramos permitir que tanto en Google como en FeedBurner se puedan ver nuestras imágenes, lo que no afectaría en búsquedas y lectores de feeds.

¿Como sacar provecho del hotlink?

Una de las cosas que podemos hacer para sacar provecho de los hotlinks es al intentar visualizar una imagen desde otro sitio, redireccionarla a una imagen donde pueda verse un mensaje como el siguiente:

Imagen para Hotlink de El_Happy Blog

Imagen para Hotlink de El_Happy Blog

De esta forma evitamos que puedan hacer uso de nuestras imágenes y al mismo tiempo patrocinamos nuestro sitio, que es donde se tiene la imagen original que intentaron enlazar desde otro sitio, puede ser algo molesto para muchos, pero entenderán que yo no prohíbo que descarguen la imagen y la hospeden en otro sitio.

Psrimero que nada debemo subir la imagen que mostraremos en algún servicio gratuito (imageshack, tinypic, etc.), para no tener que gastar nuestro ancho de banda mostrando esa imagen, después de subirla editamos nuestro .htaccess para que quede así:

1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://.*?TuSitio.com(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?google.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?feedburner.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ http://Servicio.com/TuImagen.gif [R,NC,L]
</IfModule>

Así cada que intenten visualizar cualquier imagen de nuestro sitio que este enlazada directamente en otro sitio, mostrara automáticamente la imagen que nosotros deseemos para dar a conocer que no permitimos el hotlink y de pasada promocionar nuestro sitio.

Y para todos los que utilizan WordPress y ya editaron el .htaccess para que sus artículos se muestren como enlaces permanentes, aquí les dejo el ejemplo para que puedan evitar el hotlink sin que les afecte en sus enlaces permanentes: (las lineas con # son solo comentarios)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
 
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://.*?elhappy.net(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?google.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?yahoo.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?bing.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?feedburner.com(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?facebook.com(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*?bitacoras.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ http://i55.tinypic.com/slrb53.jpg [R,NC,L]
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 
# END WordPress

Espero que les sea de ayuda, si tienen alguna duda comenten y veremos si podemos ayudarles a esclarecer esa duda o terminamos haciendo algo mas complicado. 😆