Bloquear peticiones externas a mi web

30 agosto, 2013 Diseño y Desarrollo web No hay comentarios
0 Shares Twitter 0 Facebook 0 LinkedIn 0 Google+ 0 Pin It Share 0 StumbleUpon 0 0 Shares ×

hotlinking bloquear accesos externos

El hotlinking o robo de contenido es una práctica muy extendida por la red y que puede causarnos problemas en nuestra web sin saberlo.

Son muchos los sitios en internet que deciden usar imágenes de otras webs para atraer visitas hacia la suya. Sin embargo, no copian la imagen y la alojan en su servidor, sino que crean un link que enlaza a la que nosotros tenemos puesta, lo que puede provocar un colapso en nuestro servidor y, por tanto, que nuestra web deje de funcionar.

¿Por qué sucede esto?

Cada vez que un usuario entra en la web que enlaza a nuestra imágenes se le está mostrando el contenido que nosotros tenemos alojado, es decir, está viendo nuestras fotos y no las del sitio que el usuario está visitando. Si este sitio recibe muchas visitas está enviando tantas peticiones a nuestra web como usuarios tiene por lo que nos pueden bloquear a nosotros por saturar el servidor y no al que ha generado el problema.

Podemos evitar estas situaciones añadiendo estas líneas de código en el archivo .htaccess. Si no tenemos acceso al mismo tendremos que pedir esta modificación a los que nos lleven el alojamiento de nuestra web.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?miweb\.com/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://i.imgur.com/otra-foto.gif [L]

La primera línea activa la reescritura.
La segunda detecta cualquier acceso que no provenga de nuestra web.
La tercera línea bloquea la petición de cualquier archivo de imagen y a cambio le envía a una foto que hemos alojado en un servidor externo (i.imgur.com en este ejemplo).

Esto hará que el sitio que realiza hotlinking muestre esa imagen que hemos puesto en lugar de la que nosotros tenemos en nuestra web.

Se puede dar el caso de que nosotros queramos dar acceso a nuestra imágenes a otros sitios, como por ejemplo para colocar nuestro banner en un blog o publicitarnos en otra web donde no quieren alojarnos la imagen. Hay que tener cuidado con esta acción porque puede desencadenar en la sobrecarga de la que estamos hablando, aunque en este caso tendríamos localizado el foco del problema. Dado este caso, tal vez nos interese bloquear sólo ciertos sitios webs a los que no hemos autorizado para usar nuestro contenido, así pues incluiríamos este código en lugar del anterior:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?webmala\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?webdesconocida\.com/ [NC,OR]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://i.imgur.com/otra-foto.gif [L]

En este caso estaríamos bloqueando las peticiones de las webs que indiquemos, pero sí que aceptaríamos las de aquellas que no se encuentren en esta lista. Igualmente mostramos la otra foto que hemos colgado en el servidor externo, pero si no nos importa lo que se muestre en esas webs que roban contenido podemos hacerles saltar un error 403 Forbidden en lugar de una imagen. Para hacer esto sustituiríamos la última línea por esta:

RewriteRule .*\.(jpe?g|gif|bmp|png)$ – [F]

Así, cada vez que nos hagan una petición de cualquier imagen de nuestra web, nosotros no devolveremos nada y ya no habrá riesgo de bloqueo.

Recuerda, en la medida de lo posible envía el archivo que quieras mostrar en otras webs en lugar de dar un enlace directo y protege tu sitio de posibles usuarios que no respeten el contenido ajeno.

 

 

0 Shares Twitter 0 Facebook 0 LinkedIn 0 Google+ 0 Pin It Share 0 StumbleUpon 0 0 Shares ×
Project Manager & Web Analyst

Deja un comentario

El email es obligatorio pero no será visible para el público.

¿podemos ayudarte en algo?

Contacta con nosotros

¿Crees que podemos ayudarte con tu próximo proyecto?





Valencia