2012-04-10 13 views
15

Estoy creando un sitio que requiere autenticación y autorización de usuario. Mi idea inicial fue escribir la aplicación usando el marco de Flask. Sin embargo, I learned that Flask doesn't have a built in authentication system. Tiene una extensión frasco-inicio de sesión, pero no he recibido confirmación de si esta extensión está bien escrita. He leído que es muy fácil obtener una autenticación incorrecta.Implementación de un sistema de autenticación web

  1. ¿Sería una buena idea cambiar a algo como Django o web2py, que tienen sistemas de autenticación incorporados?

  2. ¿Los buenos programadores web normalmente eligen usar sistemas de autentificación probados y verdaderos en lugar de intentar implementar los propios?

  3. ¿Existe alguna buena guía que demuestre las mejores prácticas con respecto a la creación de un sistema de autenticación/autorización?

Gracias chicos!

+5

Nunca, nunca, nunca intente hacer rodar su propio esquema de autenticación. +1 por hacer la pregunta. –

+0

¿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? –

+2

@AdamLiss A menos que sepa que debe hacerlo, y entiende cómo hacerlo realmente sólido y alguien más le está pagando. – Marcin

Respuesta

6

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.

Cuestiones relacionadas