Cargando



Intercepción y seguridad de respuestas con AngularJS

En este tutorial veremos en que consiste la intercepción de respuestas y la seguridad mínima que debemos mantener en nuestra aplicación con AngularJS.


oct 03 2014 04:00
Avanzado
oct 06 2014 10:56
Una aplicación del mundo real es mucho más compleja que solo hacer peticiones a un servicio utilizando los diferentes métodos con los que podamos contar en AngularJS, hay cosas como manejo de errores y excepciones, así como también un apartado de seguridad muy importante que debemos tener en cuenta.

Antes que una respuesta a una petición llegue a nuestra aplicación debemos hacer algo que se llama intercepción, es decir, pasar la respuesta por algunos métodos y filtros antes que pueda ser usable, de esta forma podemos detectar errores o transformar los datos.

Interceptar respuestas


Cuando llega una respuesta a nuestra aplicación, es común que debamos hacer algunas acciones antes de presentar los datos al usuario, por ejemplo validación de credenciales, limpieza de datos, manejo de errores, todo con la finalidad que nuestra aplicación sea lo más fluida posible sin ser insegura.

Response Interceptors
Para ello contamos con un API del método $q que nos permite utilizar algo llamado Response Interceptors, con ello podemos realizar todas las acciones que mencionamos de una forma más sencilla que si tuviésemos que desarrollar cada componente a mano.


Veamos un ejemplo en la siguiente imagen de un código implementando un Response Interceptor:


Vemos como obtenemos la respuesta e inmediatamente la pasamos por un método personalizado de notificación donde pudiéramos extraer los errores y luego un método de log de errores con el cual podemos imprimir en la consola el problema, finalmente si eso sucede rechazamos la respuesta para que nuestra aplicación no haga nada.

Seguridad


La seguridad es algo que es muy importante tener en cuenta, cuando trabajamos en web estamos expuestos a que nuestros servicios sean atacados, donde el mismo puede ser para denegar el servicio, así como para obtener de forma ilegal nuestros datos.

En AngularJS el formato JSON es particularmente el punto que debemos proteger más, ya que es parte vital de la confección de nuestra aplicación, aquí debemos tener en cuenta que los datos más delicados no podemos darlos con una petición GET, ya que podríamos tener problemas de accesos no autorizados.

Una de las formas de protegernos es siempre utilizar un método POST cuando estamos trabajando con información delicada para la integridad de nuestro ecosistema.

Otra forma de protección
La otra forma que podemos utilizar, es retornar un JSON no válido, con ello podemos generar una lógica que cuando reciba esta respuesta la corrija, de esta manera quien no esté involucrado en nuestro equipo no sabrá como descifrar esto.


También hay un problema que es cuando un sitio se hace pasar por el nuestro para obtener nuestra información, a esto se le llama CSRF, es decir, forjamiento de peticiones entre sitios y es lo que puede causarnos más daño.

Como evitar el CSRF
Para evitarlo debemos trabajar con mecanismos como uso de Tokens que solo nuestro sitio y su cliente reconozcan, así en la primera consulta se establece esta cabecera y las siguientes peticiones si no vienen con dicha cabecera deben ser rechazas.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X