Files
html/wiki/session-opus-17avr-2300-advanced-dashboard-css-leak-fix.md
2026-04-17 22:55:24 +02:00

2.1 KiB

Session Opus — 17avr 2300 — FIX advanced-dashboard.html CSS leak

Bug signalé

Screenshot Yacine 22h35 : wevads.weval-consulting.com/advanced-dashboard.html affichait du raw CSS text dans le body (lignes 142-203 visibles : --bg:#060a14!important, data-theme=light, etc.).

Cause racine

Un guardian/injector a fait un str_replace('</head>', '<style>...</style></head>', $html) au milieu d'un <link href=""> multiligne :

<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700
<!-- injection HERE -->
<style id="weval-theme-system">...</style>
<link rel="stylesheet" href="wevads-global.css?v1770777318">
</head>family=JetBrains+Mono:wght@400;500;700</head>display=swap" rel="stylesheet">

→ le reste du href (family=JetBrains+Mono...&display=swap) orphelin hors <head> → browser le lit en text DOM.

Fix (doctrine 86)

Python regex capture le bloc corrompu entier + reconstruit le <link> Google Fonts propre :

<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<style id="weval-theme-system">...</style>
<link rel="stylesheet" href="wevads-global.css?v1770777318">
<link rel="stylesheet" href="/hamid-arsenal-override.css">
</head>

GOLD

S95 : /opt/wevads-arsenal/public/advanced-dashboard.html.GOLD-20260417-225407-pre-css-leak-fix

Playwright E2E validation

  • TITLE: "WEVADS - Dashboard Avancé"
  • HEAD_COUNT: 1 (était 2 avant, cause du leak)
  • CSS_LEAK_DETECTED: False
  • Body text propre : icons menu rendus OK
  • Thumbnail regen post-fix OK

Bug latent notifié (non-bloquant)

JS error injectFlow is not defined — existe avant le fix, à traquer dans un autre tour.

Warning multi-Claude

Si un guardian réécrit </head> dans un fichier dont le <link href=""> s'étale sur plusieurs lignes, il corrompt le href. La cause racine profonde = le guardian lui-même (probable html-guardian.php ou équivalent). À durcir dans une prochaine session : que le str_replace </head> matche uniquement en dehors des tags.

Git

  • S95 /opt/wevads-arsenal : commit CSS leak fix