DevPath · Aprenda a programar ESPTEN

Segurança e confiabilidade

Segurança da stack

A criptografia do transporte: HTTPS/TLS

HTTPS é HTTP sobre TLS (Transport Layer Security). Criptografa o tráfego entre cliente e servidor, garante a integridade (ninguém altera os dados em trânsito) e a autenticidade (o certificado prova que você está falando com o servidor real, e não com um atacante no meio). Em produção, tudo passa por HTTPS: as senhas, os tokens de sessão e os cookies viajam em texto puro sem ele.

Reforce com o cabeçalho HSTS (Strict-Transport-Security), que obriga o navegador a sempre usar HTTPS para o seu domínio.

CORS: quem pode chamar a sua API

O navegador aplica a política de mesma origem (same-origin policy): por padrão, uma página de a.com não pode ler respostas de uma API em b.com. CORS (Cross-Origin Resource Sharing) é o mecanismo pelo qual o servidor autoriza explicitamente origens específicas com cabeçalhos como Access-Control-Allow-Origin. Não use * com credenciais: liste apenas as origens confiáveis.

CSP: Content Security Policy

O cabeçalho Content-Security-Policy declara de quais fontes o navegador pode carregar scripts, estilos e imagens. É a defesa mais forte contra XSS: mesmo que um atacante injete <script>, o navegador se recusa a executá-lo se ele não vier de uma fonte permitida.

Content-Security-Policy: default-src 'self'; script-src 'self'

Cabeçalhos de segurança: helmet

No Express, helmet é um middleware que define de uma só vez um conjunto de cabeçalhos de segurança sensatos (CSP, HSTS, X-Content-Type-Options, X-Frame-Options contra clickjacking, etc.):

const helmet = require("helmet");
app.use(helmet());

OWASP Top: os riscos clássicos

O OWASP Top 10 lista os riscos web mais comuns. Três imprescindíveis:

Sanitizar e escapar entradas

Regra de ouro: valide a entrada (rejeite o que não corresponde ao esperado), sanitize (remova o que é perigoso) e escape na saída conforme o contexto (HTML, SQL, shell). Escapar na renderização é o que neutraliza o XSS.

Gestão de segredos e varredura de dependências

As chaves, senhas e tokens nunca são escritos no código nem enviados ao repositório: vão em variáveis de ambiente ou em um gerenciador de segredos (Vault, AWS Secrets Manager). E como a maior parte do seu código são dependências de terceiros, faça a varredura delas em busca de vulnerabilidades conhecidas com npm audit (e ferramentas como Dependabot ou Snyk) de forma contínua.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Abuso e validação →