[Bug] esc() ne couvre pas le backtick + innerHTML += restant #34

Closed
opened 2026-08-05 11:08:56 -04:00 by NixCyRy · 0 comments
NixCyRy commented 2026-08-05 11:08:56 -04:00 (Migrated from github.com)

Problème

1. esc() vulnérable au backtick

core.js:119-121 — La fonction esc() échappe les caractères HTML mais pas le backtick. Si une chaîne utilisateur contient des backticks et est insérée dans un template literal, ça peut casser le HTML ou causer une injection.

2. innerHTML += restant

Plusieurs endroits utilisent encore innerHTML += qui détruit les event listeners existants :

  • render.js — reconstruction partielle
  • grocery.js — ajout dynamique d'items
  • deals.js — rendu des spéciaux

Fix

esc() — ajouter backtick

const ENTITY_MAP = {
  "&": "&amp;", "<": "&lt;", ">": "&gt;",
  '"': "&quot;", "'": "&#39;", "`": "&#96;"
};

innerHTML += → appendChild / insertAdjacentHTML

Remplacer progressuellement les innerHTML += par insertAdjacentHTML("beforeend", ...) ou appendChild().

Sévérité

🟡 Medium — sécurité défense en profondeur + stabilité.

## Problème ### 1. esc() vulnérable au backtick `core.js:119-121` — La fonction `esc()` échappe les caractères HTML mais pas le backtick. Si une chaîne utilisateur contient des backticks et est insérée dans un template literal, ça peut casser le HTML ou causer une injection. ### 2. innerHTML += restant Plusieurs endroits utilisent encore `innerHTML +=` qui détruit les event listeners existants : - `render.js` — reconstruction partielle - `grocery.js` — ajout dynamique d'items - `deals.js` — rendu des spéciaux ## Fix ### esc() — ajouter backtick ```javascript const ENTITY_MAP = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "`": "&#96;" }; ``` ### innerHTML += → appendChild / insertAdjacentHTML Remplacer progressuellement les `innerHTML +=` par `insertAdjacentHTML("beforeend", ...)` ou `appendChild()`. ## Sévérité 🟡 Medium — sécurité défense en profondeur + stabilité.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SlopVibe-org/nutri-food#34
No description provided.