Definições
privacy.storage_manager.language_settings
Definições do Tema
HTML Esc./Desesc.
Ferramenta de escape/desescape de entidades HTML para ajudar a reduzir o risco de XSS
🚀 Início rápido
- Insira conteúdo (HTML ou texto já escapado) no campo de texto
- Escolha Codificar ou Decodificar
- Clique no botão para converter; o resultado aparece no mesmo campo
- Clique em Copiar para reutilizar o resultado
📌 Cenários comuns
- Comentários de utilizador: Escapar comentários enviados por utilizadores para prevenir ataques XSS
- Posts de blog: Exibir exemplos de código HTML em artigos
- Posts de fórum: Exibir com segurança conteúdo gerado por utilizadores
- Mensagens de chat: Prevenir propagação de código malicioso através de recursos de chat
- Dados de formulário: Processar e exibir dados de envio de formulário
- Exibição de código: Mostrar trechos de código HTML/JavaScript em páginas web
🧭 Dicas de uso
- Escape contextual: Escolha a estratégia de escape apropriada com base no local de saída
- Processamento do lado do servidor: O escape de segurança crítico deve ser feito do lado do servidor
- Verificação dupla: Verifique a saída após o escape para garantir que nada seja perdido
- Use bibliotecas: Ambientes de produção devem usar bibliotecas de escape maduras em vez de processamento manual
- Verificação da pré‑visualização: visualize a exibição real no console do navegador após o escape
🎛️ Regras de escape e entidades
- Caracteres comuns: < > & " ' (a barra / geralmente não é necessária; depende do contexto)
- Formato de entidade: Caracteres especiais são convertidos para o formato &entity; ou &#code;, ex. < torna-se &lt; ou &#60;
- Escape de atributos: Aspas são convertidas para &quot;, protegendo valores de atributos HTML
- Proteção de scripts: Tags <script> são automaticamente escapadas para prevenir injeção JavaScript
- Processamento de tags: <div> é convertido para &lt;div&gt;, evitando análise do navegador
⚠️ Limitações & compatibilidade
- Não é um sanitizador: não remove scripts/eventos/protocolos inseguros; use com sanitização de conteúdo
- Proteção incompleta: O escape sozinho não pode prevenir todos os XSS, combine com outras medidas de segurança
- Dependente de contexto: Locais diferentes requerem estratégias de escape diferentes (conteúdo HTML, atributos, JavaScript, CSS)
- Para manter a página fluida, textos muito grandes podem ser processados de forma simplificada. Considere dividir
🔒 Privacidade & segurança
- Todo o processamento ocorre no seu navegador; os dados não saem do seu dispositivo
❓ Perguntas frequentes
O que é um ataque XSS?
XSS (Cross-Site Scripting) é quando atacantes injetam scripts maliciosos em páginas web para roubar informações do utilizador ou realizar operações maliciosas. O escape HTML é uma defesa fundamental contra XSS
Quando o escape HTML é necessário?
O escape é necessário ao exibir qualquer entrada do utilizador, incluindo comentários, mensagens, dados de formulário, etc. Qualquer conteúdo que possa conter tags HTML precisa de escape
Qual é a diferença entre &lt; e &#60;?
Ambos representam o caractere <. &lt; é uma entidade nomeada, &#60; é uma entidade numérica. Eles funcionam da mesma forma, entidades nomeadas são mais legíveis, entidades numéricas são mais universais
O escape previne todas as injeções de JavaScript?
Não. O escape HTML funciona apenas no contexto HTML. Contextos JavaScript, CSS e URL requerem métodos de escape diferentes
Por que às vezes vejo &amp;lt; escape duplo?
Isso acontece quando o conteúdo é escapado duas vezes. Primeiro < torna-se &lt;, depois & é escapado para &amp;, resultando em &amp;lt;. Evite escape repetido
Como permitir algumas tags HTML seguras?
Use sanitização (não apenas escape): lista de permitidos para tags/atributos seguros e filtragem de protocolos. Mantenha apenas p/br/ul/ol/li/a/strong/em/code/pre/blockquote/h1–h3; em a permita somente href/title/target (protocolos http/https/mailto/tel), em img apenas src/alt; remova style e todos os eventos on*. Recomende DOMPurify/sanitize‑html; se possível, sanitize no servidor; nunca insira conteúdo não confiável em innerHTML/dangerouslySetInnerHTML; para texto puro use textContent