Chegamos a um dos temas mais importantes de qualquer aplicação web:
segurança.
Nesta aula, vamos entender um dos ataques mais comuns da web:
Cross-Site Scripting (XSS).
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que é XSS
- Reconhecer como ele acontece
- Identificar pontos vulneráveis no código
- Aplicar boas práticas de prevenção
- Escrever JavaScript mais seguro
O que é XSS?
XSS (Cross-Site Scripting) é um tipo de ataque onde:
código JavaScript malicioso é executado dentro do navegador do usuário.
Isso acontece quando uma aplicação:
- confia em dados vindos do usuário
- insere esses dados no HTML sem validação
Por que XSS é tão perigoso?
Um ataque XSS pode:
- roubar cookies e tokens
- capturar dados digitados
- redirecionar o usuário
- alterar o comportamento da página
Tudo isso acontece:
sem que o usuário perceba.
Como o XSS acontece (conceito)
Imagine um campo de comentário que exibe exatamente o que o usuário digitou:
<div id="comentarios"></div> const comentario = entradaUsuario; // dado externo
document.getElementById("comentarios").innerHTML = comentario;
Se esse valor não for tratado, qualquer coisa digitada será interpretada como HTML.
innerHTML é o erro clássico. Tipos comuns de XSS
- XSS Refletido — vem da URL ou formulário
- XSS Armazenado — salvo no banco de dados
- XSS DOM-based — acontece apenas no JavaScript
Nesta aula, focamos principalmente no XSS baseado em DOM.
Erro comum: usar innerHTML sem necessidade
❌ Evite:
element.innerHTML = textoDoUsuario; ✅ Prefira:
element.textContent = textoDoUsuario; textContent exibe texto — não executa HTML. Criando elementos de forma segura
Outra prática segura é criar elementos manualmente:
const p = document.createElement("p"); p.textContent = textoDoUsuario;
container.appendChild(p);
Assim, o navegador nunca interpreta o conteúdo como código.
Nunca confie em dados externos
Dados externos incluem:
- inputs de formulário
- parâmetros de URL
- dados de APIs
- conteúdo vindo do backend
Validação vs sanitização
São coisas diferentes:
- Validação → verifica se o dado é aceitável
- Sanitização → remove ou neutraliza conteúdo perigoso
Idealmente:
- valide no frontend
- valide e sanitize no backend
Boas práticas essenciais contra XSS
- use
textContentem vez deinnerHTML - evite montar HTML com strings
- crie elementos via DOM API
- nunca confie em dados externos
- escape conteúdo quando necessário
E o backend?
Mesmo com JavaScript seguro:
- o backend deve validar tudo
- cabeçalhos de segurança ajudam
- tokens devem ser protegidos
XSS não é teoria
XSS está entre as vulnerabilidades mais comuns da web há anos.
Evitar XSS não é opcional — é obrigação.
Resumo da aula para nunca mais esquecer
- XSS executa código no navegador do usuário
- Acontece por confiar em dados externos
innerHTMLé o vilão mais comumtextContenté mais seguro- Segurança deve ser pensada desde o início
Na próxima aula, começamos o encerramento técnico do curso com:
Introdução a testes em JavaScript.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
PC com barulho?
Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Street Fighter 2
Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.










