Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Token low security issue #244

Closed
leocouderc opened this issue Jun 19, 2020 · 6 comments
Closed

Token low security issue #244

leocouderc opened this issue Jun 19, 2020 · 6 comments
Labels
bug Something isn't working Priority : Low

Comments

@leocouderc
Copy link
Contributor

When log out, token is destroy from client but is still valid.

Solution 1) create a blacklist
Solution 2) set a short time for the token and frequently refresh it

@leocouderc leocouderc added bug Something isn't working help wanted Extra attention is needed Priority : Low and removed help wanted Extra attention is needed labels Jun 19, 2020
@leocouderc leocouderc changed the title token low security issue Token low security issue Jun 19, 2020
@leocouderc
Copy link
Contributor Author

to resolve this issues : edit logOut()

@beber32
Copy link
Contributor

beber32 commented Jun 23, 2020

le front envoie une requete au back lord du logout mais ne fait rien. Le front modifie le cookie pour suppprimer le token.
Le token reste cependant valide pour le back donc si qq'un vole le token à l'utilisateur, il pourra toujours effectuer des requetes avec.

A gérer dans /backend/controller/authentification.js

beber32 added a commit that referenced this issue Jun 23, 2020
@salimkanoun
Copy link
Owner

@beber32 @leocouderc on fait quoi de cet issue?
Je pense que c'est overkill de tracker les jetons dont la session est terminée

@leocouderc le truc interessant en revance serait de faire que le jeton soit rafraichit a chaque requette et on reset le temps à 30 minutes
Comme ca la durée du jeton c'est 30 minutes d'inactivité

C'est faisable ca?

@leocouderc
Copy link
Contributor Author

Oui c'est faisable, y a plusieurs façons d'aborder le problème :

https://gist.github.com/ziluvatar/a3feb505c4c0ec37059054537b38fc48
auth0/node-jsonwebtoken#122
auth0/node-jsonwebtoken#172

Une solution pourrait être de demander au back de renvoyer un token identique quand il expire mais avec une date d'exp différente. Faut juste voir comment implémenter dans le front (pour savoir quand il doit envoyer la requête de rafraichissement).

Par contre la doc officielle du jwt déconseille fortement le rafraichissement car c'est souvent source de vulnérabilité. (on pourrait mettre la durée de vie à 1h ou plus et si la durée est dépassé, l'utilisateur dois juste ce reconnecté ?)

@salimkanoun
Copy link
Owner

interessant, c'est ou la doc qui déconseille le rafraichissement ?

@leocouderc
Copy link
Contributor Author

c'est sur le git de la librairie qu'on utilise : https://github.com/auth0/node-jsonwebtoken

Refreshing JWTs
First of all, we recommend you to think carefully if auto-refreshing a JWT will not introduce any vulnerability in your system.

We are not comfortable including this as part of the library, however, you can take a look at this example to show how this could be accomplished. Apart from that example there are an issue and a pull request to get more knowledge about this topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Priority : Low
Projects
None yet
Development

No branches or pull requests

3 participants