Texte dans HTML
Fait partie de la section Les bases d’Express du Journey Node.js de Coddy. Leçon 9 sur 23.
Un visiteur peut saisir des caractères que HTML interprète comme du balisage. Si un titre contient <b>, l’insérer directement dans une page crée une balise. L’échappement transforme ces caractères en texte que le navigateur affiche.
escapeHtml('<b>Lunch</b>');
// <b>Lunch</b>La fonction utilitaire transforme & en &, que le navigateur affiche sous forme d’esperluette. Les guillemets doubles deviennent " ; les apostrophes restent inchangées. Échappe chaque valeur de texte insérée, quel que soit son auteur, avant de l’entourer de ton propre HTML. Si tu échappais toute la page, tes balises de titre s’afficheraient aussi sous forme de texte. Tu n’as pas besoin d’écrire la fonction utilitaire ; l’important est de savoir où l’utiliser.
Dans une URL, écris une espace sous la forme %20, une esperluette sous la forme %26, et les chevrons sous les formes %3C et %3E. Ces encodages séparent le texte du titre de la syntaxe de la requête.
Défi
FacileModifiez exercise.js. Utilisez l’utilitaire fourni sur le titre avant de le placer dans vos propres balises de titre. Retournez le titre terminé dans html.
Essayez d’exécuter : GET /result?title=Fish%20%26%20Chips renvoie {"html":"<h1>Fish & Chips</h1>"}. Essayez /result?title=%3Cb%3ELunch%3C%2Fb%3E : le titre inséré doit être du texte, tandis que votre titre reste du balisage.
Essayez vous-même
import { escapeHtml } from './html.js';
export function exercise({ title }) {
return { html: `<h1>${title}</h1>` };
}
Toutes les leçons de Les bases d’Express
1Votre premier serveur
Bonjour, ExpressLe module httpPlus de routesParamètres de route2Réponses
Réponses JSONEntraînez-vous par vous-même : Playground Express