Seguridad angular en $ alcance

1

Para nuestra aplicación, cuando un usuario ha iniciado sesión, le estamos enviando un token que se almacena en la sesión y estamos usando $ rootScope para almacenar sus detalles.

Esto es lo que estamos haciendo

if(sessionStorage.loggedIn && sessionStorage.token){
  addonService.get({
    customer_token : sessionStorage.token
  }).$promise.then(function(data) {
        $rootScope.user = data.user;
        $rootScope.address = data.address;              
  });
}

¿Este procedimiento es seguro? ¿Hay alguna manera de que un pirata informático pueda secuestrar una variable de usuario desde $ scope? Si esta no es la mejor práctica, ¿cómo puedo mejorar mi código?

    
pregunta Muhammad Raihan Muhaimin 17.05.2015 - 18:51
fuente

1 respuesta

2

Si bien la pregunta es específicamente sobre AngularJS, el problema radica en el hecho de que no se puede confiar en nada que esté completamente controlado y ejecutado en el lado del cliente. Para cualquier cosa que se acepte del lado del cliente, DEBE validarse en el servidor antes de usarlo. Esa es la única manera de sentirse relativamente seguro acerca de la operación.

La modificación de $ rootScope o CUALQUIER objeto en el lado del cliente es trivial como actividad. La forma más sencilla de hacerlo es abrir una sesión de firebug y usar la sección del corredor de secuencias de comandos de la pestaña de la consola para cambiar arbitrariamente cualquier campo o agregar / eliminar cualquier campo en cualquier objeto.

No digamos, angular: es posible incluso anular (o reemplazar) algunos métodos de la ventana u otros objetos integrados utilizando esta técnica.

Por lo tanto, la validación de la línea de fondo en el servidor no confía en las operaciones y entradas que se ejecutan en el espacio del cliente.

    
respondido por el Yazad Khambata 18.05.2015 - 04:20
fuente

Lea otras preguntas en las etiquetas