¿Qué funciones de seguridad necesito tener instaladas para garantizar que los formularios de registro y registro de mi sitio web sean seguros?
¿Qué funciones de seguridad necesito tener instaladas para garantizar que los formularios de registro y registro de mi sitio web sean seguros?
CSRF : necesita protección. lugar para evitar la falsificación de solicitudes entre sitios o solicitudes de inicio de sesión, registro u otras acciones de otros sitios. Esto se puede utilizar para engañar a los usuarios para que realicen acciones que no pretendían hacer.
CAPTCHA en el registro : a menudo se recomienda usar un CAPTCHA en tu suspiro Formulario para reducir suscripciones automatizadas. La importancia de esto depende de su modelo de amenaza.
Inicio de sesión seguro : el inicio de sesión debe realizarse a través de HTTPS para reducir el riesgo de que las credenciales del usuario se capturen a través de un ataque MiTM .
Cookies : mientras que el inicio de sesión a través de HTTPS se debe considerar como un mínimo, todo lo demás debería ser también de SSL para proteger las cookies (recuerde que Firesheep ?). Si bien el uso de SSL no es suficiente, debe establecer la marca Secure y HttpOnly cuando sea posible.
Confirmación de correo electrónico : debe asegurarse de verificar la dirección de correo electrónico de un usuario como parte del proceso de registro (sugeriría que no les permita iniciar sesión hasta que se confirme). Tendrá que tener esto para su uso en restablecimientos de contraseña.
Protección de fuerza bruta : debe protegerse contra las cuentas de usuario de fuerza brutal del atacante. Hay varias formas de hacer esto, bloqueando cuentas (que se pueden usar como un ataque de DoS bloqueando gran cantidad de usuarios), limitando los intentos fallidos de una IP determinada (ya sea a través de ban, o CAPTCHA adicional). Cada método tiene sus pros y sus contras, pero es importante que cuente con algún tipo de protección.
Restablecimiento seguro de contraseña : debes asegurarte de tener un método seguro para restablecer las contraseñas. Este es más complicado de lo que la mayoría de la gente piensa, y es fácil equivocarse ( como Apple encontró recientemente ). El mayor riesgo es que un atacante encuentre una forma de abusar de la función para restablecer las cuentas que no son de su propiedad.
Le sugiero encarecidamente que lea el OWSAP hoja de trucos de autenticación , se detallan estos y muchos otros problemas potenciales; y como siempre, al crear nuevos sistemas, es un buen momento para echar otro vistazo a la OWASP Top 10 y asegúrese de haber tomado las precauciones adecuadas.
Agregando a la respuesta de Adam, me gustaría decir que de acuerdo con Aplicación Top 10 de OWASP Riesgos de seguridad: 2013 las tres vulnerabilidades principales son: inyección, fallas en el mecanismo de autenticación / gestión de sesiones y XSS.
Acerca de la cookie:
Si utiliza la cookie para el proceso de inicio de sesión, es importante guardar la información de la cookie en su base de datos (por ejemplo, MySQL), por lo que si un usuario hace el cierre de sesión, la información de la cookie se eliminará de la base de datos y la cookie no se ya válido Es importante, porque si un pirata informático roba la cookie, podrá acceder a su cuenta.
Otra solución paralela:
Para proteger su página de inicio de sesión, puede utilizar este servicio Colobe
Es un servicio gratuito que protege sus páginas por cualquier ataque de fuerza bruta. De todos modos Colobe requiere el PHP en su servidor.
Es muy bueno porque colobe es un servicio dinámico que aprende durante el tiempo y crea una lista negra global de las redes de botnets y servidores piratas que generan esos ataques.
N.B. Colobe es un proyecto mío.
Lea otras preguntas en las etiquetas web-application authentication password-policy