Al iniciar sesión en una página web, ¿qué sucede exactamente cuando un usuario escribe la contraseña incorrecta?

-3

Tengo dos preguntas relacionadas con lo que sucede cuando un usuario intenta iniciar sesión en un sitio web

Si la contraseña ingresada es incorrecta, ¿qué debería pasar?

Tengo dos ideas:

  1. Redirige a una página que dice "nombre de usuario / contraseña incorrectos, haz clic aquí para volver a intentarlo"
  2. Redirecciona siempre a la sección de miembros, ya que verifica si la sesión variable se ha configurado y, si no, el usuario verá "No has iniciado sesión. Haz clic aquí para iniciar sesión".

¿Cómo funciona cuando la página no necesita recargarse para decirle a un usuario que la contraseña que ingresó fue incorrecta?

Debe usar Ajax / JavaScript, pero cualquiera puede meterse con eso usando Fiddler o Charles . ¿Es esta característica solo por razones de conveniencia e incluso si el JavaScript dice que la contraseña es correcta, en el servidor la contraseña ingresada se verifica dos veces y si coincide se crea la sesión?

    
pregunta Celeritas 27.02.2013 - 00:16
fuente

1 respuesta

2

Para su primera pregunta, esto dependería de la lógica de su aplicación y de lo que funcione mejor en las circunstancias. Por ejemplo, si tiene un cuadro de inicio de sesión en cada pantalla, en un inicio de sesión fallido es posible que desee devolver al usuario a la misma página y publicar un mensaje o alerta, ya que puede haber intención de permanecer en la misma página y luego guardar ellos la navegacion En otros casos, puede dirigirlos a una página con solo la advertencia o la página de miembros con una advertencia que dice "bloqueado". Diría que, desde un punto de vista de la usabilidad, probablemente sea mejor mantenerlos donde están a menos que haya una separación clara entre el sitio "público" y el sitio "privado". Metafóricamente, ¿el inicio de sesión en una puerta o un interruptor de luz?

En cuanto a su segunda pregunta en términos de seguridad, no importa si se trata de una solicitud de página completa o AJAX. La lógica del lado del servidor todavía será necesaria para crear la sesión, las cookies y cualquier otra configuración de backend que cambie la sesión a autenticada. Si está diciendo que podrían interferir con la validación del lado del cliente, la respuesta sería no confiar en la validación del lado del cliente. Si le preocupa que algún tipo de ataque XSS o MiTM pueda evitar que se vea este mensaje, entonces deberá abordar los vectores de ataque por separado.

El lado del servidor debe participar para crear la sesión. Si estuviera verificando la contraseña en el lado del cliente, eso significaría que ya ha proporcionado la contraseña en una variable, cookie, almacenamiento local, archivo, etc. Eso sería una mala opción de seguridad. La sesión todavía tendría que ser configurada en el lado del servidor. La mayoría de las cosas que está haciendo con HTML / JavaScript / AJAX estarán manipulando el contenido una vez que lo haya proporcionado el servidor.

Si la seguridad solo está verificando alguna variable local que es la contraseña, cualquiera podría cambiar el código de verificación lógica localmente y pasar por alto la protección. Si necesita seguridad real, no solo un bloqueo rápido para usuarios finales básicos, debe asegurarse de que la comprobación de la contraseña se realice cuando solo controla el código, en el lado del servidor.

    
respondido por el Eric G 27.02.2013 - 00:45
fuente

Lea otras preguntas en las etiquetas