Security Decisions

Registro técnico das decisões de segurança aplicadas neste projeto. Cada decisão é baseada em redução de risco, compatibilidade e validação prática. Estrutura: Risco → Decisão → Trade-off → Validação.

HTTP Security Headers

X-Frame-Options / Clickjacking

Risco: Embedding não autorizado via iframe.

Decisão: X-Frame-Options: DENY

Validação: Tentativa de iframe bloqueada.

Anti-clickjacking

X-Content-Type-Options

Risco: MIME sniffing e interpretação indevida.

Decisão: nosniff

Impacto: Reduz risco de execução inesperada.

MIME

HSTS

Risco: Downgrade attack / HTTP interception.

Decisão: HTTPS obrigatório com preload.

Trade-off: Exige domínio consistente em HTTPS.

Transport Security

Content Security Policy (CSP)

Política aplicada

  • default-src 'self'
  • script-src 'self'
  • style-src 'self' 'unsafe-inline'
  • Bloqueio de recursos externos por padrão
Baseline CSP

Trade-off

'unsafe-inline' mantido temporariamente para compatibilidade com estilos existentes.

Próximo passo: remover inline e migrar para classes 100%.

Security vs DX

Outras decisões técnicas

Sem scripts de terceiros

Redução de risco de supply chain attack.

Supply Chain

Permissões restritivas

Permissions-Policy bloqueando câmera, microfone e geolocalização.

Least Privilege

Referrer-Policy

strict-origin-when-cross-origin para evitar vazamento de path completo.

Data Exposure

Validação

  • DevTools → Network → Response Headers
  • Console sem violações de CSP
  • Testes manuais de navegação e bloqueio de recursos externos
Verification