Texto dentro do HTML
Parte da seção Fundamentos de Express do Journey de Node.js da Coddy. Lição 9 de 23.
Um visitante pode digitar caracteres que o HTML trata como marcação. Se um título contiver <b>, inseri-lo diretamente em uma página cria uma tag. O escape transforma esses caracteres em texto que o navegador exibe.
escapeHtml('<b>Lunch</b>');
// <b>Lunch</b>A função auxiliar transforma & em &, que o navegador exibe como um e comercial. Aspas duplas se tornam "; apóstrofos permanecem inalterados. Faça o escape de cada valor de texto inserido, independentemente de quem o escreveu, antes de envolvê-lo com seu próprio HTML. Fazer o escape da página inteira também exibiria suas tags de título como texto. Você não precisa escrever a função auxiliar; a decisão importante é onde usá-la.
Em uma URL, escreva um espaço como %20, um e comercial como %26 e os sinais de menor e maior como %3C e %3E. Essas codificações mantêm o texto do título separado da sintaxe da consulta.
Desafio
FácilEdite exercise.js. Use o auxiliar fornecido no título antes de colocá-lo dentro das suas próprias tags de cabeçalho. Retorne o cabeçalho completo em html.
Tente executar: GET /result?title=Fish%20%26%20Chips retorna {"html":"<h1>Fish & Chips</h1>"}. Tente /result?title=%3Cb%3ELunch%3C%2Fb%3E: o título inserido deve ser texto, enquanto o seu cabeçalho permanece marcação.
Experimente você mesmo
import { escapeHtml } from './html.js';
export function exercise({ title }) {
return { html: `<h1>${title}</h1>` };
}
Todas as lições de Fundamentos de Express
2Respostas
Respostas JSONPratique por conta própria: Playground de Express