Como webmaster, una de nuestras responsabilidades fundamentales es garantizar que nuestro sitio web funcione de manera eficiente y proteger nuestros recursos de cualquier uso indebido, uno de los problemas más comunes que enfrentamos en el mundo del alojamiento web es el hotlinking, en este artículo, discutiremos qué es el hotlinking, por qué es importante implementar medidas para prevenirlo y cómo puede afectar negativamente a nuestro sitio web si no se aborda adecuadamente.
El hotlinking, también conocido como enlace directo o robo de ancho de banda, es una práctica en la que un sitio web utiliza enlaces directos a archivos multimedia, como imágenes o videos, alojados en otro sitio web sin su consentimiento, esto en esencia significa que el sitio web que roba no solo está robando contenido, también está utilizando los recursos del sitio web original sin su permiso, lo cual puede generar una serie de problemas para el propietario del sitio web original.
Entonces, ¿por qué es importante abordar este problema y proteger nuestro sitio web del hotlinking? Hay varias razones clave:
Si bien podemos utilizar servicios de CDN (Content Delivery Network) que ofrezcan protección contra el hotlinking, también, podemos implementar otras medidas más sencillas y rápidas, como modificar nuestro archivo .htaccess para bloquear el acceso a nuestros archivos multimedia desde sitios web externos o reemplazar la imagen solicitada por una predeterminada cuando se detecte hotlinking, lo cual veremos a continuación.
Puedes utilizar el siguiente código en tu archivo .htaccess para lograr lo que deseas, este código permite cargar imágenes solamente si se accede a ellas desde el dominio específico (con y sin www) y bloquea la carga si se intenta insertar en otra web.
Reemplaza “tudominio.com” el dominio de cuál deseas permitir el acceso a las imágenes:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule \.(jpeg|jpg|png|gif)$ - [F,NC,L]
El caso anterior permite bloquear la carga de las imágenes desde otro subdominio, sin embargo, no bloquea la carga de la imagen si se la escribe directamente en el navegador porque en el caso anterior esta permitiendo las peticiones sin HTTP_REFERER o con HTTP_REFERER igual al dominio, solo bloquea los HTTP_REFERER diferentes al dominio, es decir cuando es insertado en otra web, para solucionar esto se puede eliminar el segundo RewriteCond:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC] RewriteRule \.(jpeg|jpg|png|gif)$ - [F,NC,L]
Si además del subdominio quieres permitir el acceso desde 2 subdominios puedes usar lo siguiente:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^https://(www\.)?subdominio1\.tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^https://(www\.)?subdominio2\.tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule \.(jpeg|jpg|png|gif)$ - [F,NC,L]
Si se quiere bloquear el acceso directo a las imágenes se remueve el penúltimo RewriteCond y quedaría como:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^https://(www\.)?subdominio1\.tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^https://(www\.)?subdominio2\.tudominio\.com/ [NC] RewriteRule \.(jpeg|jpg|png|gif)$ - [F,NC,L]
Existen plugins de WordPress que pueden tener problemas en caso de eliminar el acceso directo a las imágenes ya que no utilizan HTTP_REFERER, por eso la solución es autorizar la IP, por ejemplo si la IP fuera 111.111.111.111 la agregaríamos de la siguiente forma:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC] RewriteCond %{REMOTE_ADDR} !^111\.111\.111\.111$ RewriteRule \.(jpeg|jpg|png|gif)$ - [F,NC,L]
Hasta ahora simplemente bloqueo la imagen mostrando un error 403, sin embargo, también podemos sustituir la imagen solicitada por una imagen predeterminada, por ejemplo por algo asi:
Para lograrlo simplemente debemos quitar la bandera F de Forbidden de la ultima regla y sustituir el guion por una ruta, por ejemplo debemos cambiar:
RewriteRule \.(jpeg|jpg|png|gif)$ - [F,NC,L]
por:
RewriteRule \.(jpeg|jpg|png|gif)$ /stop.jpg [NC,L]
Quedaria algo como eso:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule \.(jpeg|jpg|png|gif)$ /stop.jpg [NC,L]
Por supuesto podemos combinarlo con cualquiera de las reglas anteriores.
Este código realiza las siguientes funciones:
Recuerda que este código debe colocarse en el archivo .htaccess que se encuentra en la carpeta donde están alojadas las imágenes que deseas proteger.
Las letras [F,NC,L] en la regla de reescritura son banderas (flags) que especifican opciones adicionales para la regla. En este caso, las banderas tienen los siguientes significados:
Estas banderas se utilizan en combinación con la directiva RewriteRule para especificar cómo se aplicará la regla y cómo el servidor responderá cuando se cumplan las condiciones.
En conclusión, prevenir el hotlinking es fundamental para proteger nuestros recursos, mantener la integridad de nuestro contenido y optimizar el rendimiento de nuestro sitio web, al ser proactivos y tomar medidas para evitar el hotlinking, no solo garantizamos una mejor experiencia para nuestros usuarios, sino que también nos aseguramos de mantener el control sobre nuestros archivos multimedia y reducir los costos asociados al consumo de ancho de banda y alojamiento, es responsabilidad de todo webmaster estar informado sobre este problema y tomar las medidas necesarias para proteger su sitio web y sus recursos.
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas que sino fuera por estos nabos no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan mejor madura.
Uno de los principales problemas de KVM en el escritorio es el tamaño de las…
Normalmente, a las estadísticas del blog no le presto demasiada atención, sin embargo, trabajando en…
La idea principal detrás de este blog es marca personal, el blog es para centralizar…
El migrar el disco duro es bastante sencillo como se verá a continuación, la principal…
Cuando se trata de virtualización en el escritorio, una de las primeras opciones son sin…
Siempre he sido un ferviente defensor de una conexión por cable UTP para trabajar por…