From 9ddb4ccb2739d2014f2576959ae7d4fc529da71a Mon Sep 17 00:00:00 2001 From: Corentin JOGUET Date: Tue, 16 Jun 2026 14:20:50 +0200 Subject: [PATCH] fix(kiosk): escape data-derived strings in innerHTML (RG-T15) (#20) --- src/public/borne/assets/js/page-cart.js | 24 ++++++++++----------- src/public/borne/assets/js/page-product.js | 10 ++++----- src/public/borne/assets/js/page-products.js | 8 +++---- src/public/borne/assets/js/state.js | 20 +++++++++++++++++ 4 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/public/borne/assets/js/page-cart.js b/src/public/borne/assets/js/page-cart.js index 5354b83..677c4df 100644 --- a/src/public/borne/assets/js/page-cart.js +++ b/src/public/borne/assets/js/page-cart.js @@ -17,7 +17,7 @@ * requires prices shown to end-consumers to include all taxes. */ -import { getCart, removeFromCart, updateQuantity, getTotalCents, computeMenuLineCents, clearCart, formatPrice } from './state.js'; +import { getCart, removeFromCart, updateQuantity, getTotalCents, computeMenuLineCents, clearCart, formatPrice, escHtml } from './state.js'; import { refreshCartBadge } from './nav.js'; /* TVA rate used for display breakdown only — stored prices are already TTC */ @@ -62,27 +62,27 @@ function renderCart() { row.innerHTML = ` ${item.libelle}
- ${item.libelle} + ${escHtml(item.libelle)} ${formatPrice(item.prix_cents)} / unite${isMenu && (item.supplement_cents ?? 0) > 0 ? ` + ${formatPrice(item.supplement_cents)} suppl.` : ''} ${isMenu && item.composition ? renderCompositionBlock(item) : ''}
-
+
${item.quantite}
@@ -90,7 +90,7 @@ function renderCart() {