El hotlinking es una práctica en Internet que consiste en enlazar directamente archivos (generalmente imágenes) alojados en tu servidor para utilizarlos en sitios externos. En otras palabras, terceros consumen tus recursos sin tu autorización.
Por ejemplo, si tienes una imagen en tu servidor y alguien copia su URL para mostrarla en otra página (como un foro o blog), ese sitio estará utilizando tu ancho de banda. Esta práctica no solo es abusiva, sino que también afecta el rendimiento de tu sitio: puede ralentizar los tiempos de carga y aumentar los costos de hosting al requerir mayor transferencia de datos.
Afortunadamente, existen formas de prevenir el hotlinking. Si utilizas Apache como servidor web, puedes implementar una solución mediante el archivo .htaccess.
Abre (o crea) el archivo .htaccess con tu editor de texto y añade las siguientes líneas al final:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?richardcollao\.cl/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?richardcollao\.cl$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|zip)$ - [F,NC]
Recuerda reemplazar richardcollao.cl por el dominio de tu propio sitio web.
- NC (No Case): Hace que la regla no distinga entre mayúsculas y minúsculas.
- F (Forbidden): Devuelve un error 403 Forbidden, bloqueando el acceso al recurso.
Con esta configuración, cualquier solicitud a archivos con extensiones como jpg, jpeg, gif, png, bmp o zip será bloqueada si proviene de un dominio externo.
Otra alternativa muy utilizada es mostrar una imagen personalizada (por ejemplo, una advertencia o incluso publicidad) en lugar de devolver un error 403. Para ello, puedes usar la siguiente configuración:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www\.richardcollao\.cl/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^http://.*$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://i58.tinypic.com/mr4uoh.jpg [NC,R,L]
Puedes modificar esta regla para incluir otras extensiones de archivo que desees proteger.
Para que estas reglas funcionen correctamente, es necesario que el módulo mod_rewrite esté habilitado en Apache. Puedes verificarlo fácilmente utilizando la función phpinfo() desde PHP:
<?php phpinfo(); ?>
Si el módulo no está activo, edita el archivo httpd.conf (ubicado en el directorio conf de Apache) y descomenta la siguiente línea:
LoadModule rewrite_module modules/mod_rewrite.so
Guarda los cambios y reinicia el servidor Apache para que la configuración tenga efecto.
Ten en cuenta que muchos servicios de hosting permiten habilitar esta opción desde cPanel de forma sencilla. Aun así, entender cómo funciona te dará mayor control y te ayudará a evitar conflictos, especialmente si ya tienes otras reglas definidas en tu archivo .htaccess.
Con estas medidas, podrás proteger tu sitio de forma efectiva contra el hotlinking.