Iniciar sesión Sugerencias de seguridad del sistema

1

Estoy creando un sistema de inicio de sesión y me preguntaba si alguien tenía alguna sugerencia. Aquí está mi configuración actual:

  1. nonce para verificar si el inicio de sesión se originó en nuestro formulario de inicio de sesión
  2. se combinó la autenticación de sesión y cookie: en una cookie de sesión sha256 (nombre de usuario-conjunto-en-una-sesión, identificación-cookie-estática, usuario-agente)
  3. El ID de sesión de php se regenera cada solicitud
  4. SSL en todo el sitio
  5. Comprueba si han estado activos: tiempo de espera después de 1 hora
  6. La contraseña debe tener 8 caracteres con al menos un número y una letra
  7. Contraseña almacenada con un sal estático y dinámico con el hash sha256
  8. Después de 10 inicios de sesión fallidos en cualquier cuenta, se muestra recaptcha
  9. Después de 10 inicios de sesión fallidos en una cuenta, inhabilítelo durante 10 minutos o hasta que el correo electrónico confirme
  10. Mensajes de error genéricos: por ejemplo, error de inicio de sesión, inténtelo de nuevo
  11. Inyección de SQL prevenida
pregunta Ethan H 16.06.2012 - 19:41
fuente

3 respuestas

4

El mejor consejo que puedo darte es leer la guía definitiva a la autenticación del sitio web basada en formularios en StackOverflow. Es prácticamente la mejor respuesta que necesitará, e incluye muchos enlaces para seguir leyendo.

    
respondido por el Polynomial 16.06.2012 - 23:02
fuente
2

Es posible que esté duplicando esfuerzos y veo debilidades en su enfoque de selección y almacenamiento de contraseñas, así como una excelente manera de aplicar un ataque DoS a las cuentas de administrador en su sistema. Es posible que desee considerar usar esto en su lugar:

enlace

Eso es un sistema SSO de nivel empresarial. Hace todo lo que hace su sistema, solo que mejor y sin el problema de DoS.

La respuesta de Polynomial es bastante buena, pero dudo que sea la "mejor respuesta que puedas necesitar". Después de todo, la seguridad es un objetivo en movimiento. La mejor respuesta de hoy podría ser la de mañana "ZOMG - ¡No puedo creer que hiciéramos eso!"

    
respondido por el CubicleSoft 17.06.2012 - 17:30
fuente
1
  

autenticación de sesión y cookie: en una cookie de sesión sha256 (user-set-in-a-session, static-cookie-id, user-agent)

Sin sal, entonces es fácilmente reproducible. ¿Cómo ayuda la seguridad?

  

El ID de sesión de php se regenera cada solicitud

Si bien siempre debe regenerar un ID de sesión en la transición entre diferentes estados de autenticación, hacerlo para cada solicitud es bastante tonto. No está ayudando a la seguridad y es probable que rompa el sitio de formas extrañas (por ejemplo, si el usuario divide la sesión).

  

Después de 10 inicios de sesión fallidos en una cuenta, inhabilítelo durante 10 minutos o hasta que el correo electrónico confirme

¿Por lo tanto, no le molestan varios inicios de sesión consecutivos fallidos desde la misma dirección IP / agente de usuario, siempre que sean para cuentas diferentes?

  

SSL en todo el sitio

Pero, ¿has comprobado que tienes las marcas seguras y httponly en tus cookies?

    
respondido por el symcbean 18.06.2012 - 11:07
fuente

Lea otras preguntas en las etiquetas