AngularJS - ¿Se puede modificar una respuesta de $ http.post a PHP?

0

Tengo un angularJS $http.post que envía un nombre de usuario / contraseña a un archivo PHP que luego consulta mi base de datos para verificar un inicio de sesión exitoso. Luego devuelvo un objeto JSON a angularJS en uno de los siguientes formatos:

{'success' : 'true', 'userFirstName' : [firstNameFromDatabaseQuery]}

o

{'success' : 'false'}

Una vez de vuelta en angularJS, verifico el valor del éxito para determinar si las credenciales del usuario eran válidas y, si es así, inicio sesión en el usuario.

A mi pregunta, ¿un usuario puede modificar esta respuesta JSON de PHP para marcar su inicio de sesión como exitosa, cambiando success a 'true'?

Creo que vale la pena mencionar que elegí esta manera en lugar de usar las variables de sesión de PHP porque no estaba funcionando bien en mi aplicación angular, y también parece ser un código mucho más limpio. Además, esta es una aplicación muy simple. No se incluirá información personal significativa, como los SSN o la información del banco / tarjeta de crédito.

    
pregunta Tricky12 09.12.2015 - 15:45
fuente

1 respuesta

1

Sí, el cliente podría modificar el PHP para cambiar el valor de éxito a verdadero. Sin embargo, depende de la lógica de su aplicación para determinar si eso tiene consecuencias de seguridad en su aplicación. Si la aplicación solo usa el valor success para cargar una nueva UI, pero no puede desplegar ningún dato (porque el usuario no tiene una cookie de autenticación, o algún otro token de autorización), entonces realmente no sería una preocupación.

Sin embargo, si las solicitudes futuras (por ejemplo, cambiar la contraseña), use el userFirstName como mecanismo de autenticación (es decir, el servidor de fondo PHP ve el nombre y se basa solo en eso), entonces la aplicación no solo podría ser falsificado cambiando success=true pero también configurando userFirstName cualquier atacante podría convertirse en cualquier otra persona si conocen su nombre.

En su lugar, devolvería una cookie de autenticación de algún tipo. Es muy probable que este sea un ID de sesión aleatorio que se envía con cada solicitud futura. El PHP backend luego validaría el ID de sesión y, a partir de él, sabrá quién es el usuario que realiza la solicitud.

Esta publicación tiene algunas ideas sobre cómo Utilizar la autenticación en aplicaciones angulares.

    
respondido por el amccormack 09.12.2015 - 16:01
fuente

Lea otras preguntas en las etiquetas