Hot-linking es un término utilizado en Internet y significa que alguien está enlazando archivos alojados en nuestro servidor con la finaliadad de utilizarlos en otro sitio consumiendo recursos de nuestro servidor.
Por ejemplo tenemos una imagen alojada en nuestro servidor y alguien copia la URL de esta imagen y la utiliza para mostrar la misma imagen pero en otra página, comúnmente en foros, por lo que estaría usando el ancho de banda de nuestro sitio, esta mala práctica afecta la eficiencia de nuestro sitio, ralentizando la carga de nuestra página y aumenta el costo del servicio de hosting ya que necesitaremos contratar una mayor cuota de transferencia de datos.
Afortunadamente existen algunas tecnicas que nos permiten evitar esta mala práctica, para los sitios que usan Apache como servidor web tendremos que modificar o crear el archivo
.htacces
Abrimos el archivo con nuestro editor de texto, y agregamos las siguientes líneas al final del archivo.
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]
No olvides reemplazar "http://www.richardcollao.cl" por la URL de tu sitio web.
• NC nocase
El empleo de NC significa que la directiva Rewrite será aplicada de manera no sensitiva, es decir no diferencia entre minúsculas y mayúsculas.
• F forbidden
Hace que se devuelva a la petición del cliente un mensaje de acceso denegado "403 Forbidden".
Con esta configuración se bloquearán todos los accesos a cualquier archivo con las siguientes extensiones: jpg, jpeg, gif, png, bmp y zip
Siempre que la petición provenga desde fuera de nuestro dominio, y devolverá un mensaje de error 403 Acceso denegado.
Otra técnica muy utilizada es mostrar una imagen específica, por lo general algún tipo de advertencia o publicidad en vez del error 403, para esto utilizaremos el siguiente código.
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 incluir cualquier otra extensión de archivo que quieras proteger.
Para que esto funcione debemos tener el módulo rewrite activado en apache, puedes comprobarlo con la función phpinfo() desde PHP.
code: php<?php
phpinfo(INFO_MODULES);
?>
Sino está cargado modificaremos el archivo
httpd.conf el cual se encuentra dentro del directorio conf de apache
Buscamos y descomentamos la siguiente línea:
#LoadModule rewrite_module modules/mod_rewrite.so
Guardamos los cambios y reiniciamos el servidor de Apache y ya tendremos el módulo rewrite cargado.
Es importante mencionar que la mayoría de los servicios de hosting incluyen esta opción dentro de su cPanel, pero siempre es importante saber cómo funcionan las cosas, también hay que tener cuidado si tenemos más directivas en el archivo
.htacces ya que por lo general las soluciones automáticas suelen generar conflictos.
Y esto es todo, espero que este articulo les haya sido de ayuda.