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:
@@ -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', [
|
||||||
|
|||||||
Reference in New Issue
Block a user