0.13.18 : stop leaking password hash and tokens from /users/me
Le controller `me` renvoyait la ligne brute de `strapi.db.query`, sans passer par le sanitizer utilisé par `findOne` : le hash du mot de passe, `resetPasswordToken` et `confirmationToken` étaient envoyés au navigateur à chaque appel — et /users/me est appelé sur presque toutes les pages. Les trois champs sont retirés explicitement plutôt que via `sanitizeUser` : le sanitizer de l'API de contenu retirerait aussi les relations peuplées que le front consomme dans cette réponse. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "harmony-back",
|
"name": "harmony-back",
|
||||||
"version": "0.13.17",
|
"version": "0.13.18",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "A Strapi application",
|
"description": "A Strapi application",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -250,8 +250,21 @@ module.exports = (plugin) => {
|
|||||||
|
|
||||||
const stats = await getUserStats(ctx.state.user.id);
|
const stats = await getUserStats(ctx.state.user.id);
|
||||||
|
|
||||||
|
// `strapi.db.query` renvoie la ligne brute : sans cette omission, /users/me
|
||||||
|
// exposait au navigateur le hash du mot de passe et les jetons de
|
||||||
|
// réinitialisation et de confirmation.
|
||||||
|
// On retire ces champs explicitement plutôt que de passer par
|
||||||
|
// `sanitizeUser` : le sanitizer de l'API de contenu retirerait aussi les
|
||||||
|
// relations peuplées que le front consomme ici.
|
||||||
|
const {
|
||||||
|
password: _password,
|
||||||
|
resetPasswordToken: _resetPasswordToken,
|
||||||
|
confirmationToken: _confirmationToken,
|
||||||
|
...safeUser
|
||||||
|
} = JSON.parse(JSON.stringify(fullUser));
|
||||||
|
|
||||||
const result = {
|
const result = {
|
||||||
...JSON.parse(JSON.stringify(fullUser)),
|
...safeUser,
|
||||||
stats,
|
stats,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user