Luego de preguntar en gamedev y verificar algunas cosas encontré un error que em estaba molestando desde que implementé la autentificación contra la base de datos. El problema era que nombré un campo "user" y Postgres al realizar las consultas me devolvía en lugar del valor de la tabla el nombre del usuario que realizaba la consulta. Renombré el campo a username y ya funciona adecuadamente el select.
Como un plus, me dieron un consejo. Tenía pensado en caso de un login fallido informarle al usuario si la contraseña era incorrecta o si simplemente había escrito mal el nombre. Pero me advirtieron que de este modo un posible atacante solo tendría que hacer M+N búsquedas para encontrar un nombre de usuario válido y su contraseña. Sin embargo, si solo le informo que hay un error de usuario/contraseña, tendrá que hacer M*N intentos para encontrar el par válido.
De igual forma, tengo pendiente implementar una validación de el nombre de usuario y contraseña para evitar posibles ataques de sql injection.
Como un plus, me dieron un consejo. Tenía pensado en caso de un login fallido informarle al usuario si la contraseña era incorrecta o si simplemente había escrito mal el nombre. Pero me advirtieron que de este modo un posible atacante solo tendría que hacer M+N búsquedas para encontrar un nombre de usuario válido y su contraseña. Sin embargo, si solo le informo que hay un error de usuario/contraseña, tendrá que hacer M*N intentos para encontrar el par válido.
De igual forma, tengo pendiente implementar una validación de el nombre de usuario y contraseña para evitar posibles ataques de sql injection.
Comentarios
Publicar un comentario