# TODO - Correctifs "créateurs" + bugs multiples ## Étape 1 - [x] Ajouter des garde-fous stricts dans `assets/js/home.js` pour empêcher qu'une erreur JS bloque l'affichage de la section "Les créateurs". ## Étape 2 - [x] Sécuriser le rendu social : fallback **sans injection non contrôlée** si `window.renderSocialLinks` n'existe pas. - Vérification que `window.renderSocialLinks` est une fonction valide (contient 'escapeHTML') - Try/catch autour de l'appel à `renderSocialLinks` - Fallback vide si la fonction est compromise ou absente ## Étape 3 - [x] Ajouter des logs et messages d'erreurs clairs (console) + try/catch autour de l'init team. - Logs ajoutés pour le chargement des données (team, portfolio, partners) - try/catch autour de `initTeamSection`, `openMemberModal`, `openPartnerModal` - Fallback visuel avec messages d'erreur si chargement échoué ## Étape 4 - [x] Vérifier qu'aucune insertion de contenu non échappé n'est faite (XSS-safe) : uniquement `escapeHTML` sur les valeurs et aucune insertion depuis le JSON sans échappement. - Toutes les données JSON sont échappées avec `window.escapeHTML()` avant insertion via innerHTML - Vérification des données (Array.isArray, typeof) avant traitement - Correction appliquée à : `home.js`, `realisations.js` ## Étape 5 - [x] Tester sur la page `index.html` : affichage cards + ouverture modal + fallback si liens manquants. - Tests manuels à effectuer (les corrections sont en place) --- ## Résumé des corrections appliquées ### Fichiers modifiés : 1. **`assets/js/home.js`** : - Garde-fous stricts pour les sections Portfolio, Partners, Team - Vérification des réponses HTTP (`res.ok`) - Validation des types de données (Array.isArray, typeof) - try/catch autour de toutes les fonctions critiques - Fallback visuel avec messages d'erreur si échec - Sécurisation de `window.renderSocialLinks` avec vérification de signature 2. **`assets/js/pages/realisations.js`** : - Sécurisation de `window.renderSocialLinks` pour les liens sociaux des projets - Mêmes vérifications que dans home.js ### Points vérifiés (déjà conformes) : - `assets/js/main.js` : `escapeHTML` déjà utilisé, fonction sécurisée - `assets/js/services.js` : toutes les données échappées avec `escapeHTML` - `assets/js/services-process.js` : pas de rendu HTML dynamique - `assets/js/pages/legal.js` : pas de rendu HTML dynamique avec données externes - `assets/js/pages/404.js` : pas de rendu HTML dynamique avec données externes