Asegurando rutas / páginas protegidas con JWT

0

Imaginemos que tengo un sitio web con una interfaz de Reacción que muestra dos páginas, una es "Ver datos" y la otra es una página de bienvenida con un formulario de inicio de sesión.

Escenario: inicia sesión y el servidor lo acepta y obtiene un JWT. Al hacer clic en "Ver datos", al servidor se le envía el token y lo ve como válido. ¿Qué devuelve el servidor para permitir que el front-end muestre la página? ¿Reenvía el token? ¿No podría salvarlo la parte delantera? ¿No se puede falsificar / modificar una respuesta REST dentro de las herramientas de desarrollo del navegador? Si no es así, sé que puede establecer variables de JavaScript y demás, así que tendría que imaginar que no sería difícil acceder a la página protegida. Puedo proteger los datos, pero no entiendo cómo proteger correctamente la página.

Para reiterar las diversas preguntas:

  1. ¿Qué devuelve el servidor? ¿Reenvía el token?
  2. No se puede falsificar / modificar una respuesta REST dentro de las herramientas del desarrollador del navegador
  3. Si no es así, sé que puede establecer variables de JavaScript y demás, por lo que debo imaginar que no sería difícil acceder a la página protegida Si este es el caso, ¿cuál es la solución?
pregunta Geth V 18.12.2018 - 18:48
fuente

1 respuesta

0

Creo que el problema aquí es un malentendido de lo que se necesita proteger. Déjame exponer tu situación para asegurarme de que la entiendo:

  • Tiene una interfaz de JS que muestra todas las páginas
  • Tiene algunas páginas a las que no se debe acceder sin autenticación
  • No está seguro de cómo proteger esas páginas, dado que los usuarios pueden falsificar las respuestas "mostrar esta página" al cliente

La pregunta importante es, ¿la página necesita protección, o la información de la página necesita protección?

Si solo importan los datos, simplemente haga que el servidor evite enviar los datos a menos que el usuario esté autenticado. El usuario puede mostrar la página todo lo que quiera, pero no tendrá los datos que hacen que la página sea útil, por lo que realmente no importa.

Si la página en sí debe mantenerse en secreto (¿está seguro ? Me parece extraño mantener un diseño en secreto ...), entonces no debe incluirlo en tu frontend Si lo coloca en su interfaz y lo envía a usuarios no autenticados, podrán encontrarlo si están determinados.

    
respondido por el AndrolGenhald 19.12.2018 - 15:36
fuente

Lea otras preguntas en las etiquetas