Javascript : innerHTML quand l’utiliser.

Izad
2 min readMar 18, 2020

--

Javascript Logo

On voit souvent des développeurs utiliser la propriété innerHTML pour insérer du texte comme ceci :

Injection de texte via innerHTML

C’est une mauvaise pratique et qui plus est une faille de sécurité.

En effet, c’est une faille de sécurité dans 2 cas :

Si vous laissez l’utilisateur ou une application tierce injecter de l’html.

Rien n’est plus parlant qu’un exemple :

Imaginons que nous faisons appelle à une API et que nous insérons du texte via innerHTML, sauf que nous n’avons pas vérifier si la donnée qu’on reçoit est bien du texte et non un élément html.

Notre html :

Exemple de texte html pour la faille XSS

Notre javascript :

Exemple d’une injection d’une faille XSS

Le résultat de tout ça :

Résultat de notre injection XSS

Nous venons de voir un exemple d’une faille xss.

Maintenant que nous savons que cela peut devenir problématique d’utiliser la propriétés innerHTML, voyons ce qu’il est préférable d’utiliser :

La propriété textContent

La propriété textContent récupère ou injecte du texte et seulement du texte.

un exemple est plus parlant :

Notre html :

Exmple de texte html pour la propriete textContent.

Notre JS :

Exemple de tentative d’injection XSS avec la propriété textContent.

Notre résultat :

Resultat de la tentative d’injection XSS avec la propriété textContent.

Nous pouvons voir que quoi qu’on essaye de mettre, cela sera mis en tant que contenu de notre élément et non pas en tant qu’ élément de notre DOM.

--

--

Izad

Developpeur fullstack Javascript en freelance, curieux j’aime apprendre tout comme j’aime enseigner.