Como evitar el hotlinking

Creado por richard  el 2015-03-04 15:58:49
Editar

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.
Servidor Web más utilizado, con mayor número de instalaciones a nivel mundial, es un proyecto de código abierto y uso gratuito, multiplataforma.
Conjunto de datos de un mismo contexto y almacenados sistemáticamente para su posterior uso.
Lenguajes que hacen referencia al codigo de marcado para la elaboración de páginas web.
Potente lenguaje de programación orientado a objetos, independiente del sistema operativo.
Lenguaje interpretado orientado a objetos desarrollado por Netscape que se utiliza en millones de páginas web y aplicaciones de servidor en todo el mundo
Sistema operativo de software libre inspirado en el sistema Unix, escrito por Linus Torvalds con la ayuda de miles de programadores en Internet
El modelado 3D es el proceso de desarrollo de una representación matemática de cualquier objeto tridimensional a través de un software especializado. Al producto se le llama modelo 3D
Lenguaje de programación principalmente orientado al desarrollo web, su código es ejecutado del lado del servidor.
Todo lo que no sea trabajo, solo temas recreativos para divertirse.