Aller au contenu

HTML : HyperText Markup Language

Infrastructure

HTML : HyperText Markup Language. « Langage de balisage hypertexte », par analogie avec la notice de montage d'un meuble en kit : elle dit où va chaque planche, pas de quelle couleur la peindre.

Rôle : HTML décrit la structure d'une page web : titres, paragraphes, liens, formulaires, images. La présentation relève des feuilles de style, le comportement de JavaScript.

Injection : Une donnée externe insérée sans échappement dans une page devient du code exécuté par le navigateur : c'est le principe du cross-site scripting. L'échappement selon le contexte et une politique de sécurité du contenu limitent les dégâts.

Texte invisible : Commentaires, texte couleur du fond, métadonnées : une page peut contenir ce qu'aucun humain ne voit mais que tout LLM lit. L'injection de prompt a trouvé là un terrain que les concepteurs du web n'avaient pas prévu, ce qui est le propre des terrains fertiles.

Tolérance : Les navigateurs corrigent en silence le HTML mal formé. Cette indulgence, admirable chez un être humain, rend vain le filtrage par expression régulière : on assainit avec un parseur, jamais à la main.

Ce qui arrive si on s'en passe

Insérer dans une page une donnée externe sans l'échapper selon son contexte, c'est laisser un tiers y déposer du code que le navigateur exécutera avec les droits du site : vol de session, actions au nom de la victime, contenu falsifié. Filtrer ce HTML avec des expressions régulières échoue face à l'indulgence des navigateurs, qui réparent en silence ce que le filtre n'a pas su reconnaître. Une page qui contient du texte invisible transmet en outre ses instructions à tout LLM chargé de la lire, sans qu'aucun humain les ait vues passer. Le balisage ne fait que décrire ; le malheur veut que le navigateur, lui, croie tout ce qu'on lui décrit.

Explication de la marmotte

Chaque page web qu'on ouvre est écrite dans ce langage. Il sert à dire au navigateur ce qu'est chaque morceau de la page : ceci est un titre, ceci un paragraphe, ceci un lien vers une autre page, ceci une image. C'est un peu comme annoter un texte avec des étiquettes pour indiquer comment il est organisé. Le navigateur lit ces étiquettes et affiche la page en conséquence. Si quelqu'un parvient à glisser ses propres étiquettes dans une page, il peut en changer le comportement : d'où l'intérêt de trier ce qu'on y insère.

Où ce terme est utilisé

← Tout le glossaire