Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2009, 05:39
Avatar de mapper
mapper
 
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
De acuerdo Seguridad y cuentas de usuario. (contraseñas)

Estimados usuarios:
Quiero comentarles mi experiencia en sistemas de seguridad, no hay nada extremadamente complicado de entender en mi post.
No es un sistema de reconocimiento facial ni nada parecido.

Cito al gobierno de Argentina que en una campaña de vialidad dijeron:
"Si se puede evitar no es un accidente"

Les dejo una lista de cosas para tener en cuenta a la hora de crear un sistema de usuarios, seguridad y demas...
  • No albergar contraseñas sin encriptar. (MD5 es simple y bastante seguro)
  • Usemos una cadena de texto concatenada a la contraseña a la hora de encriptarla. ($salt).
  • No guardemos la cadena SALT en la base de datos.
  • Si usamos una base de datos tipo MySQL (entre otras) verifiquemos que la cuenta de usuario que usamos para las consultas no sea usuario administrador en el sistema (usualmente root) y no pueda conceder permisos o generar usuarios de la base de datos.
  • Suprime los mensajes de error, estos pueden mostrar la estructura de una base de datos.
  • Escapa las cadenas antes de usarlas en tu sentencia sql.
  • Verifica las exenciones de tus archivos. (no uses un conexion.inc, config.inc, config.txt, config.php.inc, etc... para nada)
  • No uses passwords.txt, pass.txt, users.txt, etc.
  • Importante, el mensaje de error para "usuario inexistente" y "contraseña incorrecta" tiene que ser exactamente el mismo.
  • Registra y verifica los intentos de ingreso incorrectos desde x IP en los últimos 15 minutos. (Anti fuerza bruta)
  • Ten en cuenta que estás protegiendo datos ajenos, que es un tema delicado y si no entiendes o no estás completamente seguro de lo que haces es mejor que pidas ayuda.
  • Recuerda que un buen sistema de seguridad no tiene que ser una molestia, no abuses del usuario. (basta de poner 100 captchas en el mismo formulario).
  • Recuerda que tu usuario puede olvidar la contraseña, nunca, nunca des la opción de cambiar la contraseña solo con una pregunta. Valida tu usuario atravez de su casilla de correo primero.
  • Puedes ofrecer un recordatorio, pero nunca una pregunta secreta. (¿cuantas veces dices el nombre de tu mascota por semana?)
  • Recuerdales a tus usuarios como diferenciar tu sitio del resto mediante la URL.
  • Enseñales que es mas segura una contraseña alfanumérica.
  • Si usas un directorio para las inclusiones, elimina el index list con un index.html que puede ser un archivo en blanco. O un index.php que puede redireccionarlos al inicio.


Bueno esto es todo. Espero sea claro y útil para muchos
__________________
-- May The Force Be With You --