Hay dos formas de guardar la información de autenticación en el navegador:
- Cookies
- Almacenamiento web HTML5
En cada caso, debe confiar en que los navegadores se implementan correctamente y que el sitio web A no puede acceder de alguna manera a la información de autenticación del sitio web B. En ese sentido, ambos mecanismos de almacenamiento son igualmente seguros. Sin embargo, pueden surgir problemas en cuanto a cómo los usas.
Si utiliza cookies:
- El navegador enviará automáticamente la información de autenticación con cada solicitud a la API. Esto puede ser conveniente siempre y cuando sepas que está sucediendo.
- Tienes que recordar que CSRF es una cosa y lidiar con eso.
Si usas almacenamiento web HTML5:
- Debe escribir un Javascript que administre exactamente cuándo y qué información de autenticación se envía.
La gran diferencia que a la gente le importa es que con las cookies, tiene que preocuparse por CSRF. Para manejar CSRF correctamente, normalmente necesita un "token de sincronizador" adicional .
Los marcos web todo en uno (como Grails, Rails, probablemente asp.net) suelen proporcionar una forma fácil de habilitar la protección CSRF y agregar automáticamente elementos de token de sincronizador en su interfaz de usuario. Pero si está escribiendo una interfaz de usuario utilizando un marco web solo para el cliente (como AngularJS o BackboneJS), tendrá que escribir algo de Javascript para administrar el token del sincronizador. Por lo tanto, en ese caso, también puede ir con el enfoque de almacenamiento web HTML5 y solo preocuparse por un token.
Se discuten otras diferencias aquí .
editar una búsqueda en Google revela this para asp.net: llaman al token del sincronizador un" token de verificación de solicitud ".