hotlinking

Si tu contrato con tu proveedor de hosting es por un ancho de banda limitado, es importante que protejas tu web contra el hotlinking de imágenes.

En este post aprenderás que significa «hotlinking» y cómo evitarlo.

¿Qué es el hotlinking?

Hot-linking es un término que se usa en Internet. Indica que alguien está usando un enlace a una imagen que está archivada en otro sitio web en lugar de guardar una copia de la imagen en el sitio web en el que se mostrará la imagen. Por ejemplo, en lugar de guardar una imagen .gif y cargarla en su propio sitio web, la persona usa un enlace de tipo absoluto hacia la imagen, semejante a http://sitioweb.com/imagen.gif, en lugar de un enlace de tipo relativo. – Wikipedia

Cómo evitar el hotlinking

Existen varias maneras de evitar el hotlinking, una es mediante la opción de “Protección de enlace directo” que se encuentra en cPanel que es la manera más sencilla.

hotlinking cPanel

Y la mejor apuesta radica en agregar unas líneas de código al archivo .htaccess.

# Evitar hotlinking de imagenes

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?tudominio.com[NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?duckduckgo.com [NC]
RewriteRule .(jpg|jpeg|png|gif)$ - [NC,F,L]

Este código se encargará de:

  • Comprobar si la petición está dirigida a un fichero jpg, jpeg, png, gif.
  • Comprobar si existe el campo Referer dentro de la petición, si pertenece a nuestro
    sitio o si sencillamente no ha sido incluida.
  • Denegar el acceso a la dirección IP que originó la petición en una página web remota.

En “tudominio.com” debes reemplazarlo por tu dirección real de dominio.

Deberías permitir hotlinking desde ciertos dominios como por ejemplo Google, Yahoo, Bing o Redes sociales, para evitar perder posicionamiento.

Algunos plugins de Seguridad o si usas el servicio de CloudFlare estos te ofrecen una opción para habilitar esto, antes de copiar código en su fichero .htaccess asegúrese de no tener activada esa opción en un plugins o en CloudFlare.

Cómo comprobar que el código está funcionando correctamente

Existe una página web donde con solo colocar la dirección URL de alguna imagen perteneciente a tu web comprobaras si puede ser enlazada por un servidor remoto.

Antes realizar esta prueba borra la caché del navegador para evitar que la imagen se cargue desde la memoria caché en lugar de la URL remota que está probando.

O utiliza un navegador diferente al que usas habitualmente para navegar donde no hayas accedido nunca a tu sitio web.

http://altlab.com/hotlinkchecker.php

Como mencionaba anteriormente si el código ha sido implementado correctamente te encontraras con un mensaje:

Attempting to display image below:

image not loaded

Conclusión

Aunque existen muchas variaciones en las expresiones regulares específicas que pueden ser escritas, todas logran la misma cosa.

Uno puede o bien lanzar un mensaje de «prohibido» lo que significa que la imagen no está allí o el usuario llega a ser redirigido a otra imagen.

En definitiva, el uso de la regla de reescritura para prohibir la visualización de la imagen es una regla simple que bloquea efectivamente la visualización en sitios remotos.

Similar Post