From 4c37176c1954a69a2eab56f6b9ebcdb3bfdd1cf5 Mon Sep 17 00:00:00 2001 From: Yanis Mahboub Date: Thu, 23 Apr 2026 20:12:41 +0200 Subject: [PATCH] wiki: doctrine 140 partners double logo chattr+i silent fail --- ...octrine-140-partners-double-logo-chattr.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 weval-ops/wiki/doctrine-140-partners-double-logo-chattr.md diff --git a/weval-ops/wiki/doctrine-140-partners-double-logo-chattr.md b/weval-ops/wiki/doctrine-140-partners-double-logo-chattr.md new file mode 100644 index 0000000..d651eba --- /dev/null +++ b/weval-ops/wiki/doctrine-140-partners-double-logo-chattr.md @@ -0,0 +1,40 @@ +# Doctrine 140 — Régression récurrente partenaires double logo (23 avril 2026) + +## Symptôme (récurrent, 3+ occurrences historiques) +Page d'accueil `/` affiche 2 zones partenaires : +- Zone 1 (OK) : slider React avec logos SAP / ARROW / HUAWEI / Vistex / IQVIA +- Zone 2 (PARASITE) : barre filtre `PARTENAIRES / SAP Gold Partner / Vistex / IQVIA / Huawei Cloud / Scaleway` + tuiles avec Abbott + +## Cause racine CONFIRMÉE +`/var/www/html/weval-audit-reco.js` (43 KB) contient 2 IIFE qui injectent dynamiquement via DOM : +- Ligne 341 : `(function(){...})();` pour les tuiles avec SVGs (incluant Abbott) +- Ligne 422 : `(function(){...})();` pour la barre filtre + +Ces 2 blocs sélectionnent `.hero` et insèrent du HTML parasite après. + +## Pourquoi ça revenait malgré les fix +Le fichier a `chattr +i` (immutable). Tout `cp`, `sed -i`, `awk > file`, `python write` fail silencieusement sans erreur sur www-data et même root. Les fix précédents semblaient réussir mais ne modifiaient rien réellement. + +## Fix definitif (23 avr 2026) +1. `sudo chattr -i /var/www/html/weval-audit-reco.js` (retirer immutable) +2. Inject `return;/* neutralized */` en début de chaque IIFE + marker `DOCTRINE 140 DISABLED` +3. `sudo chattr +i` (réappliquer immutable) +4. Sync les 15 copies (reco.js + reco2-15.js) +5. CF purge complet + +## Règles pour l'avenir +- **TOUJOURS** faire `lsattr` avant toute modification sur `/var/www/html/*.js` +- Si `----i----` détecté → `chattr -i` obligatoire AVANT write +- Vérifier après write avec `grep -c ` pour confirmer qu'on a vraiment écrit +- Protéger le fichier fixé avec `chattr +i` et documenter dans doctrine + +## Fichiers concernés (15 copies identiques) +``` +/var/www/html/weval-audit-reco.js (chargé par index.html + trust-center.html) +/var/www/html/weval-audit-reco2.js à reco15.js (duplicates identiques) +``` + +## Commit + Tag +- Commit: `96537efde fix(partners-double-logo): DOCTRINE 140 neutralize` +- Tag: `fix-partners-double-logo-doctrine140-20260423-201204` +- GOLD: `/var/www/html/weval-audit-reco.js.GOLD-20260423-201014-pre-partners-fix`