security: Supprimer le mot de passe de la réponse POST /api/users

PROBLÈME DE SÉCURITÉ :
Le mot de passe était retourné dans la réponse JSON lors de la création
d'un utilisateur (quand généré automatiquement).

RISQUES :
- Exposition dans les logs de proxies/load balancers
- Visible dans DevTools navigateur
- Peut être loggé côté client en cas d'erreur
- Reste en mémoire/historique des requêtes

SOLUTION :
- Suppression complète du champ 'password' de la réponse
- Le mot de passe est DÉJÀ envoyé par email (ligne 525)
- L'admin reçoit seulement : id + username

RÉPONSE AVANT :
{
  "status": "success",
  "message": "Utilisateur créé avec succès",
  "id": "10023668",
  "username": "pr.350-renn731",
  "password": "MPar<2a8^2&VnLE"  //  FAILLE
}

RÉPONSE APRÈS :
{
  "status": "success",
  "message": "Utilisateur créé avec succès",
  "id": "10023668",
  "username": "pr.350-renn731"  //  SÉCURISÉ
}

Travail sur tâche #15 (Nouveau membre non synchronisé)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-26 16:30:03 +01:00
parent e3d9433442
commit 6eefa218d8

View File

@@ -539,21 +539,15 @@ class UserController {
$username $username
); );
// Préparer la réponse avec les informations de connexion si générées automatiquement // Préparer la réponse (sans le mot de passe pour des raisons de sécurité)
// Le mot de passe est envoyé par email au nouveau membre
$responseData = [ $responseData = [
'status' => 'success', 'status' => 'success',
'message' => 'Utilisateur créé avec succès', 'message' => 'Utilisateur créé avec succès',
'id' => $userId 'id' => $userId,
'username' => $username
]; ];
// Ajouter le username dans la réponse (toujours, car nécessaire pour la connexion)
$responseData['username'] = $username;
// Ajouter le mot de passe seulement si généré automatiquement
if ($chkMdpManuel === 0) {
$responseData['password'] = $password;
}
Response::json($responseData, 201); Response::json($responseData, 201);
} catch (PDOException $e) { } catch (PDOException $e) {
LogService::log('Erreur lors de la création d\'un utilisateur GeoSector', [ LogService::log('Erreur lors de la création d\'un utilisateur GeoSector', [