Autorización OAuth2: ¿guardar el token en las cookies o en la sesión?

7

Soy un novato de seguridad. Estoy implementando auth en mi sitio y quiero preguntar dónde debo guardar mi token de acceso:

  • cookies
  • sesión (se obtendrá del servidor a través de una solicitud ajax)

Tengo backend (apacible) y frontend (SPA). Comunicación solo entre ellos.

Por cierto, ¿qué tiempo de caducidad se recomienda para auth?

    
pregunta Pleerock 05.02.2014 - 18:00
fuente

3 respuestas

3

El almacenamiento del token de acceso en las cookies puede ser vulnerable a algunos ataques del lado del cliente (por ejemplo, el robo de cookies de usuario). En su lugar, utilice sesión y HTTPS para la comunicación.

    
respondido por el TMR_OS 26.05.2014 - 11:35
fuente
2

Dependiendo de los diferentes flujos que desee o tenga que usar (código de autorización, gran implícito, contraseña del propietario del recurso o flujos de credenciales de cliente), es posible que necesite un token de autorización y definitivamente un token de acceso. El token de autorización se puede almacenar en la base de datos y puede tener un TTL de más días, mientras que el token de acceso (alrededor de 5 minutos o configurable) tiene una duración más corta y se puede almacenar en el servidor en una lista a la que pueden acceder diferentes clientes (¡sincronizar!). OAuth2 no hace uso de la firma y, por lo tanto, HTTPS es una necesidad. El token no debe almacenarse en el interior como la cookie, ya que no se puede colocar por otra razón (caché, vulnerabilidad de transporte, ...). Como el token de acceso está vinculado al usuario, se puede guardar dentro de la sesión de la aplicación cliente.

    
respondido por el rkn 07.10.2014 - 10:59
fuente
0

Tal vez sea más sencillo usar una biblioteca que lo haya administrado correctamente.

Marque esta biblioteca de javascript

    
respondido por el Nereis 13.02.2014 - 09:21
fuente

Lea otras preguntas en las etiquetas