¿Qué sucede si alguien roba un token web JSON que se usa para la autenticación en una aplicación web?

Si alguien roba el token, puede hacerse pasar por su usuario. Generalmente almacenamos JWT en cookies, lo que nos hace vulnerables a los ataques XSS y CSRF.

Hay tres cosas importantes que hacer:

  • Use HTTPS : TLS de extremo a extremo evita que alguien intercepte o detecte las solicitudes en el cable y robe el token.
  • Almacene los tokens de forma segura en el cliente : si almacena su token en una cookie, asegúrese de usar el indicador HttpOnly para evitar el robo a través de XSS y use la protección CSRF en todos sus formularios.
  • Vence los tokens : si todo lo demás falla, y un token se roba, una expiración sensata asegurará que solo haya un período de tiempo limitado para que el token pueda usarse para causar daño.

Solo la parte de la firma del token está encriptada y contiene: encabezado + cuerpo / reclamo + secreto, para verificar la integridad / autenticidad del token. Todo lo demás solo está codificado en Base64.

El token es cómo el servidor identifica una sesión de usuario. Si alguien roba el token, el servidor normalmente no lo notará.

En general, los tokens están limitados a una sesión, lo que los hace más desechables, pero aún así, si alguien logra resolver cómo robarlos (debería ser bastante difícil), entonces tienes un gran problema.

More Interesting

¿Cuáles son los asuntos legales a tener en cuenta al crear una aplicación web (proteger mi idea, términos, condiciones, políticas, etc.)?

¿Hay alguna herramienta que me permita crear una aplicación web con poco o ningún conocimiento de programación?

¿Cómo construyo un sitio web similar a craigslist con un presupuesto?

¿Qué tipo de aplicaciones (web o windows) se pueden automatizar utilizando herramientas RPA?

¿Cuántas horas debería pasar un gerente de proyecto en la planificación de un nuevo sitio web o aplicación web?

¿Qué empresas pertenecen a las startups web seleccionadas y qué es una web seleccionada?

¿Cuál es el lenguaje de programación más utilizado para el desarrollo de una aplicación web?

¿Cuáles son algunos de los mejores sitios web de contratos de compromiso en línea?

¿Cuál es el mejor marco para desarrollar aplicaciones web móviles, Ionic o jQuery mobile?

¿Qué marco debo elegir para desarrollar una aplicación web y por qué?

Si desea crear una aplicación web pero no desea apoyar a un equipo de desarrollo, ¿pueden las opciones de código bajo ser lo suficientemente robustas como para admitir la aplicación?

¿Cuáles son los diferentes tipos de aplicaciones web disponibles en la industria?

¿Qué enfoques son útiles para extraer el contenido de texto real de una página web de la etiqueta ?

¿Cuáles son las mejores herramientas de creación de prototipos de aplicaciones web y móviles?

¿Cómo debo construir mi propio Chatbot y conectarlo con mi aplicación web y la aplicación de Android?