Feed de Edgaragg

Artículos relacionados

Facebook Share

Share on facebook

Designed by:
SiteGround web hosting Joomla Templates
Buenas prácticas en el manejo de sesiones en aplicaciones web PDF Imprimir E-mail
Escrito por edgaragg   
Lunes, 08 de Septiembre de 2008 14:48
Indice del artículo
Buenas prácticas en el manejo de sesiones en aplicaciones web
Manteniendo el estado
ID de sesión en el URL
Uso de campos ocultos en un formulario
Cookies
El ID de Sesión
Robo de sesión
Fallas comunes
Buen manejo de sesión
Conclusiones
Todas las páginas

 

La naturaleza sin estado del protocolo HTTP hace que las organizaciones y los desarrolladores tengan que buscar formas para identificar univocamente a un visitante en una aplicación web.  Varios metodos han sido propuestos y usados, sin embargo, el más utilizado es el que hace uso de un ID de sesión único.  Desafortunadamente, en muchos casos se han aplicado incorrectamente estos ID de sesión haciendo que la aplicación "segura" esté abierta a posibles ataques.

Entendiendo la situación

Hoy en día la mayoría de las organizacione han realizado una cantidad considerable de inversiones en su presencia en Internet.  Para estar organizaciones, Internet se a convertido en una excelente forma de mostrar sus productos a sus clientes y constituye una forma de ofrecer una presencia 24x7.  En la mayoría de los casos estos servicios son ofrecidos usando HTTP simple.   Sin embargo, debido a la forma en que el protocolo HTTP trabaja, no existe niguna facilidad para identificar univocamente a un usuario a través de una aplicación web.   De esta forma, los desarrolladores han tenido que idear métodos para lograr manejar el estado de una sesión sobre un protocolo que por definición no lo soporta.

La forma más común de lograr este objetivo es usar un identificador único de sesión el cual viaja hacia el navegador y de vuelta al servidor en cada petición (request).  Sin embargo, resulta relativamente facil para un hacker adivinar este identificador y usarlo para robar la identidad del usuario.

Una forma de manejar las sesiones es solicitar al usuario que se identifique en el sitio web usando un nombre y contraseña para las páginas restringidas.  De esta forma, no solo se estaría identificando univocamente a cada usuario sino que también se estaría identificando a los usuarios autenticados en la aplicación.

 Ahora bien, el método a utilizar para manejar el ID de sesión en una aplicación web y la prevención de posibles ataques dependerá de la respuestas a las siguientes preguntas:

  1.  ¿Dónde y con qué frecuencia se espera que los usuarios autenticados usarán la aplicación web?.
  2. ¿Hásta que punto necesita la organización manipular el estado de una sesión?
  3. ¿Qué nivel de daño podria causar a un usuario autenticado el ataque de un hacker (con el posible robo de identidad)?
  4. ¿Cuánto tiempo le tomaría a una persona romper el método de manejo de sesión?
  5. ¿Cómo podría la aplicación identificaro responder a un posible ataque?
  6. ¿Cuál sería el impacto en la usabilidad de la aplicación si se usa una versión encriptada de HTTP (HTTPS?
  7. ¿Cuál sería el costo en la reputación de la organización si se rompe con el método de manejo de sesión y esta información se hace pública?
Respondiendo a estas preguntas una organización puede evaluar la conveniencia y riesgos financieros que puede traer el uso o implementación de un método de manejo de sesión pobre.



Actualizado ( Martes, 23 de Septiembre de 2008 14:38 )