sábado, 20 de octubre de 2012

Java y Tomcat: filtrar peticiones que no vienen de tu dominio

Os cuento una movida que me ha pasado esta semana a ver que os parece. Desde estos últimos meses estoy trabajando en un proyecto de desarrollar una aplicación web de gestión de procesos de una empresa. Esta aplicación la estamos haciendo con Tapestry, un framework de Java que usa Maven para desarrollo de aplicaciones web. Además usamos PostgreSQL, Hibernate, Jasper, JavaScript, JSON,  y la desplegamos en un servidor Apache Tomcat en un hosting de Internet.
Como se trata de una aplicación interna, no está indexada en Google ya que no queremos que esté. Pues bien, vamos haciendo módulos y partes hasta que esta semana nos llama el cliente y nos dice que poniendo el nombre de la empresa en Google le sale una página porno llamada www.muyzorra.com y con la descripción de la aplicación que estamos haciendo. Hacemos un Whois y nos sale una empresa de Sevilla. Llamamos a la persona y nos dice que no sabe nada, que tiene ese dominio comprado hace muchos años pero aparcado para su venta. 
Lo más graciosos es que redireccionaba a la aplicación y se podía trabajar manteniendo las URL, es decir, metes usuario y password y tenías direcciones del tipo www.muyzorra.com/administracion y funcionando ;-)
Nosotros hemos puesto lo siguiente en la home de entrada para que todo el tráfico que venga de ahí lo derive a la web www.google.es Es algo parecido a usar la variable global SERVER_NAME de PHP pero para Java.

Object onActivate() throws ServletException, IOException { HttpServletResponse response = requestGlobals.getHTTPServletResponse(); HttpServletRequest request = requestGlobals.getHTTPServletRequest(); doGet(request, response); if(serverName.equals(nombreServidorObtenido) || serverName2.equals(nombreServidorObtenido)) { return null; } else { return new URL("http://www.google.es"); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); nombreServidorObtenido=request.getServerName(); }

Pero sigo sin explicármelo... Comenta @nicolasmarin que seguramente alguien haya entrado en su servidor y le haya hecho una redirección con CNAME sin que lo sepa. Porque sino, para que redireccionas un dominio porno a una aplicación interna de una empresa muy pequeña?? A mi no se me ocurre nada más :-(
Seguiré dándole vueltas!!

PD: Muchas gracias a @pablesite, @nicolasmarin y @jrbelandor que son los que me echaron un cable en este embrollo

No hay comentarios :

Publicar un comentario