Prevención de un eructo e intercepción

4

He creado una API de autenticación para administrar las sesiones de usuario y los trabajos. Para iniciar sesión en un usuario, el usuario envía sus credenciales a mi punto final de API y devuelve "verdadero" o "falso" según su inicio de sesión. Hace poco recibí un informe de un problema que indica que al usar "eructar e interceptar", la respuesta de "falso" se puede cambiar a "verdadero", omitiendo un intento fallido de inicio de sesión y haciendo que el navegador piense que el usuario ha iniciado sesión.

Seré honesto: no tengo idea de cómo prevenir esto. Y si no puedo evitarlo, ¿hay una mejor manera de autenticar a los usuarios?

    
pregunta shane 16.12.2017 - 20:59
fuente

1 respuesta

5

Es posible que desee pedirle al reportero que le explique cuáles creen que son las implicaciones de seguridad.

Engañar al navegador para que muestre un inicio de sesión exitoso a través de una respuesta de API falsificada localmente no hace daño a menos que el usuario pueda usarlo para en realidad omitir la autenticación o acceder a información confidencial. Un ataque tendría que engañar al servidor para que asumiera que la autenticación se había realizado correctamente, no al cliente.

  

No tengo ni idea de cómo evitar esto.

No puede evitar que un usuario manipule los datos que han dejado su servidor. No tiene control sobre el cliente (su navegador) y no puede impedir que utilicen Burp ( o la consola de desarrollador para esa materia ) para volver a escribir solicitudes y respuestas de manera que su aplicación web no tuviera la intención.

  

Y si no puedo evitarlo, ¿hay una mejor manera de autenticar a los usuarios?

Como Marc describió, un enfoque posible es hacer que el punto final de API devuelva un token de sesión una vez que la autenticación se realice correctamente. El cliente luego usaría este token para realizar más solicitudes autenticadas.

    
respondido por el Arminius 16.12.2017 - 21:14
fuente

Lea otras preguntas en las etiquetas