Desde siempre el spam ha sido un problema para el buen funcionamiento de cualquier proyecto web. Tampoco es un secreto que uno de los mayores factores de generación de spam son los robots que recorren la totalidad de multitud de webs dejando huella de su paso en forma de, generalmente, comentarios y mensajes con contenido malicioso.
Pero, ¿qué medidas fiables tenemos para luchar contra el problema del spam? Muchos se basan en hacer que el usuario introduzca un texto o resultado de operación matemática, incluyéndolo de forma que una persona lo pueda procesar fácilmente pero no así un robot; estos son los conocidos Captchas. En este caso estamos dejando al usuario malintencionado (o robot de spam) entrar a nuestra web, e intentamos evitar que interactúe con ella.
Esta alternativa que les presentamos, llamada Bad Behaviour por razones obvias, partiendo de la base de la lucha contra el spam va un paso más allá, impidiendo a estos usuarios (o robots) maliciosos la entrada a su página web objetivo. Esto está muy bien pero, ¿cómo funciona Bad Behaviour? Es muy sencillo. La aplicación recibe cada petición realizada a su entorno web y comprueba diversos parámetros de la misma para detectar si la petición la ha realizado un usuario legítimo y no se trata de ningún robot ni usuario malintencionado. En caso de que encuentre una petición de este tipo, devuelve un simple error del tipo “403 Bad Behaviour”, en lugar del contenido original de la página solicitada.
Entrando más al detalle, este proceso se realiza de dos formas claramente diferenciadas. Por una parte la aplicación contiene un listado de posibles elementos o comportamientos que pueden convertir una petición en sospechosa de ser maliciosa (por ejemplo cabeceras erróneas, como la User-Agent, o peticiones que no respetan el contenido del fichero robots.txt en caso de que lo tengamos configurado), y por otra rechaza peticiones de orígenes maliciosos al conectarse a una base de datos pública de IPs maliciosas constantemente actualizada.
Este proceso puede parecer lento y su demanda de recursos alta, pero se ha demostrado que puede llegar a introducir una mejora en el tiempo de carga de las webs ya que al bloquear los accesos malintencionados se dejan de enviar páginas web completas (con todos sus elementos y contenido multimedia) y se envía un simple mensaje de error en su lugar, lo que reduce considerablemente el ancho de banda consumido por estas peticiones y la carga de los servidores.
En lo que respecta a la instalación, esta aplicación se creó inicialmente como una extensión para WordPress (motor que da vida a este mismo blog), pero su diseño modular le permite adaptarse a prácticamente cualquier aplicación basada en PHP. Actualmente existen instrucciones de instalación para otras de las aplicaciones web más comunes como MediaWiki, Drupal, DokuWiki y Geeklog, e incluso algunos CMS lo incluyen en su instalación por defecto (es el caso de LifeType).
Si no la conocían, espero que la prueben y nos dejen sus comentarios sobre la funcionalidad de esta aplicación y su funcionamiento.
[…] Bad Behaviour: Un enfoque diferente del control anti spam […]