miércoles, 28 de diciembre de 2011

Seguridad en autentificación web

Voy a poner unos pasos básicos sobre seguridad a la hora de implementar un sistema de autentificación de sesiones web.
No explicaré como crear un sistema para esto, solo daré algunos consejos.

1.- A la hora de autentificarse encriptar la contraseña antes de enviarla al servidor.

2.- Volver a encriptar la contraseña en el servidor.

3.- Caducidad en las sesiones.

4.- Si no quieres que un mismo usuario pueda estar conectado desde dos sitios a la vez generar Token "Cadena de caracteres generada al azar" en las sesiones.

5.-Usar Https



Ahora explicare el por que de los pasos anteriores:

1.- Si alguien esta esnifando en la Red podrá obtener la contraseña fácilmente.

2.- Si alguna vez consiguen entrar a la base de datos o sacar las contraseñas mediante Inyección Sql las contraseñas, algunas de estas pueden ser desenciptadas mediante diccionarios u otros métodos.
"Una buena solución para esto, como he dicho sería volver a aplicarle la encriptación a la contraseña, también se le suele añadir una serie de caracteres extra antes de volver a encriptar para que la contraseña sea mas difícil de adivinar"
Por ejemplo: "&;.alk456s" Añadiendo esta cadena las contraseñas simples ya no serán tan simples y por lo tanto menos vulnerables.

3.-Las sesiones deben de tener caducidad ya que si algún usuario se deja la sesión abierta en un equipo ajeno, su cuenta quedaría expuesta.

4.- Puedes generar un Token cuando un usuario se autentifique y guardarlo en la sesión de este de manera que si el mismo usuario se autentifica desde otro lugar se generara otro toquen y la sesión anterior dejara de ser valida.

5.- Si usas Https los datos se mandaran cifrados.



He de decir que soy un aprendiz y que yo solo estoy poniendo lo que he aprendido y usado en mis trabajos.
Si alguien tiene algo que objetar o corregir bienvenido sea.

Saludos y espero que os sirva mi experiencia.

miércoles, 24 de agosto de 2011