feat(v2.0.2): Corrections de sécurité critiques et fonctionnalité de réactivation des devis

- Correction de 14 vulnérabilités SQL (8 critiques, 6 moyennes)
- Suppression de la fonction autocomplete non utilisée
- Migration complète vers PDO avec requêtes préparées
- Ajout du bouton 'Réactiver' pour les devis archivés (statut 20 → 1)
- Conversion des appels $.ajax en fetch API (vanilla JS)
- Correction des erreurs JavaScript empêchant l'attachement d'événements
- Mise à jour de la documentation (README.md et TODO.md)

Sécurité: Utilisation systématique de intval() et requêtes préparées PDO
UI: Nouveau bouton vert dans la grille 2x2 des actions sur devis archivés
Historique: Traçabilité dans devis_histo lors de la réactivation
This commit is contained in:
2025-09-12 20:25:48 +02:00
parent eabb4bf67a
commit 443b0509df
16 changed files with 4355 additions and 3318 deletions

View File

@@ -4,14 +4,14 @@
### Module Devis
#### 6. Modifier un devis archivé
#### 6. Modifier un devis archivé (TERMINÉ - 12/09/2025)
**Priorité**: Haute
**Description**: Permettre la modification d'un devis archivé et son renvoi pour traitement sans nécessiter de duplication.
**Tâches**:
- [ ] Ajouter un bouton "Réactiver" sur les devis archivés (statut 20)
- [ ] Permettre le changement de statut d'archivé vers "En cours"
- [ ] Conserver l'historique de réactivation dans `devis_histo`
- [ ] Adapter les droits selon les rôles (RR, DV, DIR-CO)
- [x] Ajouter un bouton "Réactiver" sur les devis archivés (statut 20)
- [x] Permettre le changement de statut d'archivé vers "En cours"
- [x] Conserver l'historique de réactivation dans `devis_histo`
- [x] Adapter les droits selon les rôles (RR, DV, DIR-CO)
#### 8. Dupliquer une ligne produit
**Priorité**: Moyenne
@@ -212,8 +212,10 @@ DB_PASSWORD=<PROD_PASSWORD> # À sécuriser
### Sécurité
- [x] ✅ Migrer les credentials DB vers des variables d'environnement
- [x] ✅ Classe Database avec requêtes préparées PDO
- [ ] Audit complet des contrôleurs pour injections SQL résiduelles
- [x] ✅ Audit complet et correction de toutes les injections SQL (14 vulnérabilités corrigées)
- [ ] Correction des failles XSS potentielles
- [ ] Implémentation des tokens CSRF
- [ ] Tests de sécurité automatisés
### Performance
- [ ] Implémenter la pagination côté serveur pour toutes les listes
@@ -283,19 +285,24 @@ ALTER TABLE devis ADD COLUMN erreur_transfert_edi TEXT;
## Résumé de l'état actuel
### ✅ Réalisations (v2.0.1 - 12 septembre 2025)
### ✅ Réalisations (v2.0.2 - 12 septembre 2025)
1. **Migration DEV complétée** : Architecture séparée application/BDD
2. **Base unique `cleo`** : Fusion réussie de 3 bases en une seule
3. **Sécurité renforcée** : PDO, requêtes préparées, variables d'environnement
4. **Container `dva-front`** : MariaDB supprimé, application PHP uniquement
5. **Container `maria3`** : Base de données centralisée opérationnelle
6. **Audit de sécurité complété** : 14 vulnérabilités SQL identifiées et corrigées
- 8 critiques (fonction autocomplete, injections dans cjxpost.php, mclients.php, mdevis.php)
- 6 moyennes (cjxdevis.php, cjxexport.php, cjximport.php, mexpxls.php)
7. **Fonctionnalité Réactivation devis** : Bouton permettant de réactiver les devis archivés (statut 20 → 1)
### 🎯 Prochaines étapes prioritaires
1. **Migration PROD vers IN4** : Export/Import des containers vers `pra-front` et `maria4`
2. **Fonctionnalités métier** : Points 6, 14, 16 (voir sections ci-dessus)
3. **Sécurité** : Audit des contrôleurs pour injections SQL résiduelles
2. **Fonctionnalités métier** : Points 14, 16 (voir sections ci-dessus)
3. **Sécurité XSS** : Audit et correction des failles XSS potentielles
4. **Tests** : Mise en place de tests automatisés de sécurité
---
*Document mis à jour le 12 septembre 2025*
*Version 2.0.1 - Post-migration DEV*
*Version 2.0.2 - Sécurité SQL complète*