Skip to content

[BUGFIX] Réduire au maximum l’exposition du jeton de réinitialisation de mot de passe (temporaryKey) dans les URL (PIX-24167) - #17421

Open
lego-technix wants to merge 2 commits into
devfrom
pix-24167-fix-sensitive-data-in-check-password-reset-demand-url
Open

[BUGFIX] Réduire au maximum l’exposition du jeton de réinitialisation de mot de passe (temporaryKey) dans les URL (PIX-24167)#17421
lego-technix wants to merge 2 commits into
devfrom
pix-24167-fix-sensitive-data-in-check-password-reset-demand-url

Conversation

@lego-technix

@lego-technix lego-technix commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

☀️ Problème

Cette PR est la suite de #17203 qui avait déjà bien réduit l’exposition d’informations sensibles passées dans les URL.

Mais il reste encore le jeton de réinitialisation de mot de passe (temporaryKey) qui est présent dans un chemin d’URL et qui va être donc présent dans toutes les requêtes côté serveur.

⛱️ Proposition

Utiliser un fragment d’URL (hash), qui n’est jamais envoyé aux serveurs, pour transmettre le jeton de réinitialisation de mot de passe (temporaryKey) au frontal Pix App.

🧴 Remarques

ℹ️ On fait le choix de ne pas chercher pas à gérer l’ancienne route /changer-mot-de-passe/:temporary_key car :

  • une demande de réinitialisation de mot de passe a une durée de validité de 1h, ce qui fait une plage très petite plage problématique de 1h après la mise en production
  • l’ancienne route /changer-mot-de-passe/:temporary_key va rediriger l’utilisateur sur la page de connexion de Pix App, et le réflexe de l’utilisateur va être de refaire une nouvelle demande et il obtiendra à ce moment un nouveau lien, avec la nouvelle solution avec fragment (hash), qui fonctionnera cette fois.

🏊 Pour tester

La RA de Pix API peut envoyer des emails (la variable d’environnement MAILING_ENABLED a été mise à true).

  1. Effectuer une demande de réinitialisation de mot de passe en suivant le lien « Mot de passe oublié ? »
  2. Constater que l’URL reçu dans le courriel est de la forme https://app-pr17421.review.pix.fr/changer-mot-de-passe#YYY et non de la forme https://app-pr17421.review.pix.fr/changer-mot-de-passe/YYY
  3. Constater qu’il n’y a aucune erreur pendant toute la procédure et qu’on peut bien se connecter au compte avec le nouveau mot de passe défini
  4. Constater dans les logs serveur que le jeton de réinitialisation de mot de passe (temporaryKey) n’est pas présent dans les logs serveur (soit sur la RA de Pix App comme dans la copie d’écran ci-dessous, soit par exemple en local sur une instance locale de nginx si vous en avez une)
pix_app_logs

@lego-technix lego-technix self-assigned this Sep 7, 2026
@lego-technix
lego-technix requested a review from a team as a code owner September 7, 2026 17:25
@pix-bot-github

pix-bot-github commented Sep 7, 2026

Copy link
Copy Markdown

@lego-technix
lego-technix force-pushed the pix-24167-fix-sensitive-data-in-check-password-reset-demand-url branch from a934cab to 573b239 Compare September 9, 2026 11:57
@lego-technix
lego-technix marked this pull request as ready for review September 9, 2026 12:00

@nlepage nlepage left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test fonctionnel OK 🦔

Comment thread mon-pix/app/routes/reset-password.js Outdated
@lego-technix
lego-technix force-pushed the pix-24167-fix-sensitive-data-in-check-password-reset-demand-url branch from 573b239 to 44a713e Compare September 9, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants