# CDA — Socle de sécurité natif

## Règles désormais imposées par le noyau

1. Toute route est privée par défaut, sauf liste publique explicite.
2. Toute mutation applicative exige un jeton CSRF valide, indépendamment du contrôleur.
3. L’API AXIOM reste isolée et utilise son authentification Bearer native.
4. Les liens publics de signature restent limités par leur jeton à usage contrôlé.
5. Les méthodes HTTP inconnues sont refusées avec un code 405.
6. Les réponses de mutation ne doivent jamais être mises en cache.

## Règles obligatoires pour chaque développement

- Authentification au niveau du noyau et permission métier dans le contrôleur.
- Filtrage systématique par `organisation_id` et, pour le portail Famille, par identité liée.
- Aucun identifiant numérique seul ne doit suffire à autoriser un accès.
- Requêtes préparées uniquement ; aucune concaténation de donnée utilisateur dans le SQL.
- Échappement HTML en sortie et validation stricte à l’entrée.
- CSRF sur toute mutation HTML ; Bearer signé pour l’API.
- Téléchargements limités à une racine réelle vérifiée par `realpath`.
- Journalisation des actions sensibles sans mot de passe, jeton, signature ou donnée bancaire.
- Suppression logique par défaut ; suppression physique réservée aux procédures administratives.
- Toute mise à jour doit passer par préflight, manifeste, signature, migrations et rollback.

## Contrôles de recette minimaux

- utilisateur non connecté : redirection vers connexion ;
- rôle insuffisant : réponse 403 ;
- ressource d’une autre organisation/famille : 404 ou 403 sans fuite d’information ;
- mutation sans CSRF : 419 ;
- double envoi : opération idempotente ou conflit 409 ;
- fichier hors répertoire autorisé : refus ;
- erreur interne : référence d’incident sans trace technique affichée.
