Lição 1
O que é HTML Entity?
Entenda character references e por que o HTML precisa de escape.
Uma HTML entity (mais precisamente, uma character reference) é uma forma de escrever um caractere usando uma escape sequence em vez do caractere literal. A forma mais familiar começa com & e termina com ;, como < para < ou © para ©.
Por que o HTML precisa de escape
HTML usa < e > para delimitar tags. Se você inserir <script> bruto em uma página sem escape, o browser pode interpretá-lo como markup. O escape transforma < em < para o browser exibir o caractere em vez de iniciar uma tag.
A mesma ideia se aplica a:
- Ampersands (
&) — devem ser escapados primeiro para que©não seja parseado incorretamente - Aspas em attributes —
"e'dentro de attribute values - Símbolos especiais — ©, non-breaking spaces, símbolos matemáticos em conteúdo
Entities não são criptografia
Encoding não esconde significado. Qualquer pessoa pode decodificar Tom & Jerry de volta para Tom & Jerry. O objetivo é inserção segura em HTML, não confidencialidade.
Onde desenvolvedores veem entities
Fontes comuns incluem:
- Exports de CMS que escapam HTML para storage ou templates de email
- Template engines server-side que fazem auto-escape no output
- Campos JSON ou de log contendo snippets pré-escapados
- Copy-paste do Word ou editores rich-text com smart quotes e símbolos
Decode vs render
Decodificar uma string de entity produz texto. Renderizar esse texto dentro de HTML é um passo separado. Nunca assuma que decode sozinho torna conteúdo seguro para innerHTML.