¿Cuál es el método más seguro para enviar datos de autenticación a API?

1

Uso Vue.js en el frontend y GoLang en el backend. Con Vue estoy enviando solicitud de AJAX con credenciales para iniciar sesión / registrarse. ¿Debo usar la autenticación básica de HTTP o simplemente enviarlas en el cuerpo de la solicitud? En caso de que te estés preguntando, estoy usando HTTPS. Después de la solicitud inicial, estoy enviando de vuelta una cookie de sesión, que usaré para solicitudes sucesivas.

    
pregunta Dawid Cyron 16.09.2018 - 16:07
fuente

1 respuesta

2

No use la autenticación básica, es un esquema de autenticación antiguo que no proporciona ningún beneficio sobre la administración de sesión basada en token o cookie. Cuando se utilizan credenciales de autenticación básicas, sirven como identificador de sesión, por lo tanto, deben enviarse en cada solicitud. Esto tiene dos grandes desventajas:

  • Las credenciales se almacenan en la memoria caché del navegador en texto sin formato que se puede abusar en algunos escenarios

  • La sesión no se puede terminar ya que se adjunta a las credenciales del usuario y las credenciales no tienen un concepto de caducidad como JWT, las cookies u otro tipo de tokens (Nota: cuando digo caducidad no me refiero a caducidad de contraseña como "Es necesario cambiar la contraseña cada 3 meses" pero las credenciales como esquema de autenticación)

Incluso si intenta utilizar la autenticación básica para enviar una cookie de sesión, los navegadores seguirán enviando las credenciales en el encabezado de autorización.

Si está utilizando AJAX, mi consejo sería seguir con la autenticación basada en cookies o migrar a JWT. Tenga en cuenta que si se llama a la API desde un nombre de host diferente (fe www.example.com llama a una api en api.example.com), el correspondiente Los encabezados CORS para permitir las credenciales deben configurarse correctamente

    
respondido por el Mr. E 16.09.2018 - 16:48
fuente

Lea otras preguntas en las etiquetas