Si desea agregar capacidad de inicio de sesión de usuario a su sitio web (es decir, autenticación y autorización), utilice un marco existente. A menos que sea un experto en seguridad, la probabilidad de escribir un sistema seguro es cercana a 0. Esto se aplica independientemente del idioma en el que se programe e independientemente del marco que esté utilizando.
Desafortunadamente, he visto a personas responder a esta pregunta de la siguiente manera: "No es tan difícil y divertido codificar, como principiante. Necesitas un lugar para almacenar tus datos (digamos una base de datos mysql). almacene versiones CIFRADAS de las contraseñas, etc., etc. " Esta respuesta es COMPLETAMENTE INCORRECTA.
Existen marcos de autenticación gratuitos disponibles. ÚSALOS. Por ejemplo, Django y web2py tienen sistemas de autenticación incorporados. Muchos frameworks no vienen con autenticación incorporada (por ejemplo, Flask, webpy); esto no significa que deba implementar su propio marco. Simplemente significa que deberías encontrar un software de autenticación de terceros. Para Flask, hay Flask-login.
Por lo tanto, la respuesta a mis preguntas originales son:
1.) Sí, o integrar un sistema de software de 3 ª parte verificado.
2.) Sí, las mejores prácticas dicen NO ESCRIBA SU PROPIO SISTEMA DE AUTENTICACIÓN. Use uno que ya ha sido construido.
3.) No debe necesitar una guía para crear un sistema de autenticación, porque no debe crear uno. Sin embargo, OWASP es un gran recurso de seguridad.
Aquí hay un breve resumen: No escriba su propio sistema de autenticación. Use un sistema de autenticación preconstruido de confianza. Si alguien tiene alguna recomendación para los sistemas de autenticación que se pueden usar con Python, no dude en publicarlos.
Nunca, nunca, nunca intente hacer rodar su propio esquema de autenticación. +1 por hacer la pregunta. –
¿Tiene algún requisito especial (como el inicio de sesión único) o simplemente desea una autenticación básica de nombre de usuario/contraseña en una página HTTPS? –
@AdamLiss A menos que sepa que debe hacerlo, y entiende cómo hacerlo realmente sólido y alguien más le está pagando. – Marcin