Cargando



Nginx - Bloquear Acceso por Referencia

En este tutorial veremos cómo bloquear las visitas de potenciales usuarios spam al bloquear referencias con Nginx.


jul 06 2014 02:25
Avanzado
jul 09 2014 09:11
Como bien es sabido el spam es un serio problema que genera miles de millones de mensajes no deseados al año, además que genera miles de millones de dólares en pérdidas por utilización de recursos de forma no adecuada.

En la lucha contra el spam podemos aplicar muchas técnicas, una de ellas es bloquear visitantes por referencias, es decir tomar el valor del HTTP Referrer o mejor dicho bloquear al visitante según la página de la que venga. Con esto podremos lograr disminuir en un porcentaje importante el mal uso de nuestro servidor y con ello evitar gastos innecesarios y riesgos de seguridad potenciales:


En la imagen tenemos varios mensajes de spam que hemos recibido en nuestra aplicación, si nos fijamos a detalle tienen orígenes que podemos aislar, es decir, podemos determinar palabras clave con las cuales identificar de donde vienen los usuarios que colocan estos mensajes no deseados.

El objetivo de estos generadores de spam es atraer visitas y subir sus páginas en los motores de búsqueda utilizando técnicas desleales.

Bloquear la Referencia


Conociendo ya el problema, tenemos la posibilidad de utilizar la flexibilidad y las herramientas de Nginx para evitar que sigamos sufriendo con estos ataques, para ello vamos a hacer uso de la variable $http_referrer, esta nos va a dar información de la URL de donde viene el visitante, así podremos utilizar la información para nuestro beneficio.

Veamos en la siguiente imagen como dentro de un bloque location hemos utilizado la variable mencionada y la emparejamos con un listado de palabras clave que hemos recopilado durante nuestro análisis de los ataques:



Vemos entonces que hemos aplicado un filtro para todo lo que contenga las palabras elegidas, generalmente el spam viene en el idioma inglés, aunque también está en un aumento en otros idiomas, por lo que debemos investigar y ahondar más al momento de hacer el filtro.

En este ejemplo hemos colocado un error 403 de acceso restringido, sin embargo a veces no es recomendable mostrar este tipo de mensaje, ya que podemos estimular al atacante a buscar romper nuestra seguridad, por ello podemos enviar un mensaje 404 o hacer una regla rewrite que envíe a una página vacía, todo esto claro debemos estudiarlo para ver que se acerca más a nuestros requerimientos.

Importante
Otro aspecto que debemos destacar al momento de hacer el listado de palabras, es que debemos tener cuidado de no bloquear a nuestros usuarios reales, debemos hacer un estudio de las costumbres de navegación de nuestros usuarios y por ahí predecir desde donde podrían estar llegando a nuestra web, cuestión que no incluyamos una palabra que haga que bajen nuestros visitantes en un porcentaje importante.


Finalizando el tutorial vemos que tenemos un aliado en Nginx en nuestra lucha contra el spam, al utilizar el bloqueo por referencia también estaremos ayudando a bajar la carga de nuestro servidor al evitar que los generadores de spam puedan interactuar con nuestro site haciendo que se genere carga de procesamiento.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X