Configurar headers de segurança no deploy
Contexto
Atualmente a aplicação não possui headers de segurança configurados no ambiente de deploy. Isso aumenta a exposição a problemas como clickjacking, execução indevida de conteúdo e vetores comuns de XSS.
Sem uma política explícita de segurança, o navegador aceita comportamentos mais permissivos do que o necessário para a aplicação.
Objetivo
Configurar headers de segurança para o projeto, com foco inicial em vercel.json, restringindo fontes de scripts e estilos e adicionando proteções básicas contra clickjacking e XSS.
A solução deve cobrir:
- configuração de
Content-Security-Policy (CSP)
- configuração de
X-Frame-Options
- configuração de
X-Content-Type-Options
- restrição de fontes de scripts e estilos
- mitigação de clickjacking e XSS
Exemplos de comportamento esperado
Exemplo 1 — Proteção contra clickjacking
Cenário: tentativa de abrir a aplicação dentro de um iframe externo.
Resultado esperado: o navegador bloqueia o carregamento por conta de X-Frame-Options ou diretiva equivalente na CSP.
Exemplo 2 — Bloqueio de script não autorizado
Cenário: página tenta carregar script de origem não permitida.
Resultado esperado: a política CSP bloqueia o carregamento.
Exemplo 3 — Bloqueio de tipo de conteúdo indevido
Cenário: recurso é servido com tipo incorreto ou ambíguo.
Resultado esperado: o navegador não faz MIME sniffing por causa de X-Content-Type-Options: nosniff.
Comportamento esperado
- O deploy deve enviar headers de segurança para as rotas da aplicação.
- A CSP deve restringir as fontes permitidas de scripts e estilos ao mínimo necessário.
- A aplicação deve impedir carregamento em
iframe não autorizado.
- O navegador não deve fazer interpretação permissiva de tipos de conteúdo.
- A configuração deve ser compatível com o ambiente da Vercel.
- A política deve ser documentada para facilitar manutenção futura.
Tarefas
Critérios de aceite
Dependências
Configurar headers de segurança no deploy
Contexto
Atualmente a aplicação não possui headers de segurança configurados no ambiente de deploy. Isso aumenta a exposição a problemas como clickjacking, execução indevida de conteúdo e vetores comuns de XSS.
Sem uma política explícita de segurança, o navegador aceita comportamentos mais permissivos do que o necessário para a aplicação.
Objetivo
Configurar headers de segurança para o projeto, com foco inicial em
vercel.json, restringindo fontes de scripts e estilos e adicionando proteções básicas contra clickjacking e XSS.A solução deve cobrir:
Content-Security-Policy (CSP)X-Frame-OptionsX-Content-Type-OptionsExemplos de comportamento esperado
Exemplo 1 — Proteção contra clickjacking
Cenário: tentativa de abrir a aplicação dentro de um
iframeexterno.Resultado esperado: o navegador bloqueia o carregamento por conta de
X-Frame-Optionsou diretiva equivalente na CSP.Exemplo 2 — Bloqueio de script não autorizado
Cenário: página tenta carregar script de origem não permitida.
Resultado esperado: a política CSP bloqueia o carregamento.
Exemplo 3 — Bloqueio de tipo de conteúdo indevido
Cenário: recurso é servido com tipo incorreto ou ambíguo.
Resultado esperado: o navegador não faz MIME sniffing por causa de
X-Content-Type-Options: nosniff.Comportamento esperado
iframenão autorizado.Tarefas
Content-Security-Policynovercel.json.X-Frame-Optionsnovercel.json.X-Content-Type-Optionsnovercel.json.script-srcestyle-srcao mínimo necessário.Critérios de aceite
Content-Security-Policy.X-Frame-Options.X-Content-Type-Options: nosniff.iframenão autorizado.Dependências