Desarrollador Web, Gerente de la unidad de desarrollo de Maxnegocios.com.

Consejos para un login seguro

| viernes, 16 de octubre de 2009
Algunos consejos que ya muchos manejamos pero que valen la pena recordar.

Logitud de la contraseña y nombre de usuario: tiene que tener mínimo 6-8 caracteres.

Encriptar la contraseña: aunque casi todo el mundo usa MD5 o SHA-1, no está mal del todo usar SHA-2 (disponible en PHP5), ya que las anteriores ya no son tan seguras como hace tiempo.

Añade una semilla a la contraseña: cuando encriptes la contraseña es recomendable añadirle un texto para que el hash sea mas seguro.

No uses nombres sencillos para el administrador: evita usar nombres como "admin", "root", "tu nombre", "tus iniciales", "tu cedula", ...

Registra los intentos de login: así se podrá detectar cuando estamos siendo atacados. Bloquear al tercer intento fallido y enviar un email al dueño de la cuenta para activar la cuenta o reestablecer una nueva contraseña.

Maneja los errores: cuando se produce un login fallido, o evita que se produzca un error, o muestra un error personalizado, no muestres errores de código que puedan dar pistas al atacante. Nunca digas que fallo, si el nombre de usuario o la clave, simplemente limitate a decir: combinacion de usuario y contraseña errada.

Filtra la entrada: filtra lo que el usuario meta en su usuario para evitar inyecciones de código y no compruebes si la contraseña es correcta mediante SQL.

Usa LIMIT o WHERE 1: es importante para evitar comprometer muchas cuentas si sufrimos un ataque.

Usa nonce: nonce es un número único para la sesión, así nos aseguramos de que no se realicen ataques de fuerza bruta usando diccionario.

Usa sólo $_POST: $_GET es más sencillo de usar que $_POST, aunque no quita que usando $_POST no nos encontremos con problemas. Cada vez que recuperes un dato de formulario, pasalo por un filtro anti XSS.

Cuentas MySQL: utiliza un usuario con permiso de select para realizar el login, así, si rompen tu seguridad, no podrán hacer deletes, updates o inserts.

Auto logout: Si quieres darle mayor seguridad, desconecta al usuario automáticamente pasado un cierto tiempo de inactividad. Aunque desde el punto de vista de la usabilidad no es muy recomendable.

Bloque la cuenta: si se han intentado varios logins consecutivos y han sido fallidos, se debería bloquear la cuenta.

Catpcha: Usa un sistema de catpcha para disminuir la posibilidad que tu formulario este siendo usado por algun robot.

0 comentarios: