MongoDB: almacenando claves de forma segura

Es muy común que en una aplicación necesitemos que el usuario se identifique introduciendo su id de usuario y clave, en la parte de Front End nos basta con añadir un diálogo de login y enviar dichas credenciales de forma segura al servidor. ¿Y en la parte servidora? ¿Qué podemos hacer? Almacenar un hash de la clave en base de datos.

MongoDB: almacenando claves de forma segura

Es muy común que en una aplicación necesitemos que el usuario se identifique introduciendo su id de usuario y clave, en la parte de Front End nos basta con añadir un diálogo de login y enviar dichas credenciales de forma segura al servidor.

¿Y en la parte servidora?, ¿dónde almacenamos esa clave?, ¿cómo comprobamos que es correcta? Lo primero que se nos puede venir a la cabeza es almacenar la clave tal cual en un campo de la base de datos, ¿qué problemas nos podemos encontrar siguiendo esta aproximación?

Si guardo la claves cómo texto en claro, en caso de que me roben la base de datos, estoy exponiendo usuarios y claves a un tercero. Por otro lado, aunque sea mala práctica, hay usuarios que utilizan esa clave para otros sitios, no es buena idea tenerla expuesta en la base de datos. Y para finalizar si quieremos cumplir con normativas de seguridad, no podemos almacenar esta clave como texto en claro, podemos enfrentarnos a una cuantiosa multa.

¿Qué podemos hacer? Almacenar un hash de la clave en base de datos.

Temario

Guardando credenciales

En este vídeo vamos a ver cómo podemos guardar las contraseñas de los usuarios de manera que el atacante lo tenga complicado para recuperar el valor.

Ver lección

Recuperando credenciales

Ahora que ya sabemos como guardar las contraseñas de nuestro usuarios, necesitamos una forma de comprobar que cuando uno de ellos introduce sus credenciales, éstos son correctos, por ejemplo, en un formulario de login.

Ver lección

¿Con ganas de aprender Backend?

En Lemoncode impartimos un Bootcamp Backend Online, centrado en stack node y stack .net, en él encontrarás todos los recursos necesarios: clases de los mejores profesionales del sector, tutorías en cuanto las necesites y ejercicios para desarrollar lo aprendido en los distintos módulos. Si quieres saber más puedes pinchar aquí para más información sobre este Bootcamp Backend.