---
description: Sécurité données — whitelist updates, pas de fuite payload, pas de catch silencieux (#1043)
alwaysApply: true
---

# Sécurité des données

## Mises à jour partielles
- Tout endpoint qui met à jour UN champ / UNE valeur exige une **liste blanche** serveur des champs modifiables.
- Liste noire ou early-return permissif = trou (colonne arbitraire depuis le navigateur).

## Données sensibles
- Filtrer en **couche données** : valeur ABSENTE du payload JSON, pas masquée à l'affichage (masquage front = fuite).
- Un historique de valeurs sensibles est aussi confidentiel que la valeur courante (souvent davantage).

## Erreurs — ne jamais maquiller une panne
- INTERDIT : `catch (\Throwable)` renvoyant structure vide ou zéros — transforme une panne en données fausses crédibles, pire qu'un 500 (#1043, 21 M€ masqués).
- Toute panne fonctionnelle : `Log::error` **avec** trace + contexte, et remontée utilisateur.
- Un `Log::warning` non surveillé ≈ silence (ex. 76 dans `SharePointService`, dette connue).
