Manejo de contraseñas en una aplicación web

12

Estoy tratando de aprender cómo se desarrolla una aplicación web segura. En particular, no estoy seguro de cómo se envían las contraseñas del cliente al servidor. Para un usuario típico / contraseña formulario de inicio de sesión. Si el cliente envía un usuario / paso de texto sin formato en una solicitud POST a través de HTTPS. ¿Es esto lo suficientemente seguro? Teniendo en cuenta que el servidor tiene hash, el paso de texto sin formato con el salt almacenado usa algo como bcrypt, con suficientes iteraciones.

¿Es este escenario lo suficientemente seguro? Ignorando otros vectores de ataque como las inyecciones de SQL, XSS, etc. Simplemente estoy viendo si el envío de la contraseña de texto sin formato a través de SSL en una solicitud POST es lo suficientemente seguro, o si es necesario algún otro tipo de seguridad, en el lado del cliente.

    
pregunta marcwho 05.04.2013 - 15:15
fuente

4 respuestas

14

Sí, enviar la información usando POST sobre HTTPS es la forma típica de hacer las cosas.

    
respondido por el Ayrx 05.04.2013 - 15:17
fuente
13

Para completar la respuesta de @ Terry: enviar el nombre de usuario y la contraseña en una POST a través de HTTPS no es solo la forma típica de hacerlo, sino también la forma correcta para hacerlo. Esto te traerá la mejor seguridad que puedes esperar. No escribí "buena seguridad", pero le costaría hacerlo mejor; de hecho, cualquier cosa que haría en el lado del cliente, en un contexto web, tendría que usar un poco de Javascript ... que viene del servidor en sí. Y, de manera similar, una vez que se ha realizado la autenticación, todavía tiene que transmitir cualquier información que sea lo suficientemente sensible como para justificar la autenticación en primer lugar. Por lo tanto, aún tendría que confiar en que HTTPS sea lo suficientemente seguro para evitar las escuchas y manipulaciones hostiles.

Todavía querrá asegurarse de que el campo de entrada de la contraseña esté "oculto", es decir, muestra viñetas o estrellas en lugar de los caracteres ingresados por el usuario, para desalentar a hombro surfistas . Los trucos adicionales que les gustan a los bancos, como los "teclados visuales" para disuadir a los keyloggers básicos, suelen ser no vale la pena el esfuerzo .

    
respondido por el Tom Leek 05.04.2013 - 15:53
fuente
2

Sí, para asegurar las credenciales de usuario a través de la publicación del canal de transmisión y HTTPS son suficientes. Pero la administración de identidades es un tema muy importante y hay muchos otros vectores de ataque que deberá considerar Consulte esto para obtener información adicional

    
respondido por el Shurmajee 05.04.2013 - 15:34
fuente
1

En realidad, es práctica utilizar HTTPS, pero creo que no debería reemplazar las funciones criptográficas para guardar al usuario y su propia contraseña.

Contra SQLi, XSS, XSE, le recomendaría que lea en enlace

    
respondido por el Dr.Ü 05.04.2013 - 23:51
fuente

Lea otras preguntas en las etiquetas