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?
Mortal Kombat - O Filme
O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.
Galaxy Game
As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.
Donkey Kong
A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.
Space Invaders
A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.
Civilization
A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.










