O que são Cabeças de Segurança?
cabeçalhos de segurança são cabeçalhos de resposta HTTP que instruem os navegadores como se comportar ao lidar com o conteúdo de um site, melhorando a proteção contra vulnerabilidades comuns da web. Esses cabeçalhos ajudam a prevenir ataques como scripts cross-site (XSS), clickjacking, injeção de conteúdo e ataques de downgrade de protocolo. Cabeçalhos de segurança devidamente configurados são essenciais para estratégias de segurança de defesa em profundidade.Cabeçalhos de segurança essenciais
Strict-Transport-Security (HTS)
Força conexões HTTPS:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
- Evita ataques de rebaixamento de protocolo
- Blocos de conteúdo misto
- Protege contra desfiação SSL
# Política de segurança do conteúdo (CSP)
Controla o carregamento dos recursos:
Content-Security-Policy: default-src 'self'; script-src 'self' trusted.com; style-src 'self' 'unsafe-inline'
- Evita ataques XSS
- Controla fontes de script
- Bloqueia recursos não autorizados
# X-Frame-Opções
Previne o clickjacking:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
- Bloqueia o local de ser enquadrado
- Protege contra a reparação de IU
# Opções do tipo de conteúdo X
Evita o cheiro de MIME:
X-Content-Type-Options: nosniff
- Força o navegador a respeitar o tipo de conteúdo declarado
- Evita a injeção do script através de arquivos mal interpretados
Cabeçalhos de Segurança Adicionais
| Cabeçalho | Objecto | Valor do Exemplo |
|---|---|---|
| Proteção X-XSS | Filtro XSS (legado) | 1; modo=bloco |
| Política de referência | Informações do referente de controle | origem estrita-quando-origem cruzada |
| Política de Permissões | Restrições de recursos | geolocation=(), camera=() |
| Política de abertura cruzada | Isolamento do processo | mesma origem |
| Política Cross-Origin-Embedder | Isolamento dos recursos | require-corp |
Exemplos de implementação
Configuração do Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'" always;
Configuração do Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Cabeçalhos de Segurança e Saúde de Domínio
# Por que os líderes importam para os domínios
- Proteja os usuários que visitam seu domínio
- Evitar danos à reputação do domínio
- Cumprir os requisitos de conformidade
- Defender contra ataques comuns
Testando Cabeçalhos de Segurança
Ferramentas para verificar a implementação:
- securityheaders.com
- Observatório Mozilla
- Laboratórios SSL
- Página Rede Chrome DevTools
Melhores Práticas
1. Iniciar com HSTS: Essencial para execução HTTPS
2. Implementar PSC gradualmente: Iniciar apenas com o modo de relatório
3. Teste cuidadosamente: Cabeçalhos podem quebrar a funcionalidade
4. Use listas de pré-carregamento: Enviar para listas de pré-carregamento do navegador
5. Violações do monitor: Utilizar os parâmetros de relatório CSP
6. Auditorias regulares: Os requisitos de segurança evoluem
Critérios comuns de classificação
| Grau | Requisitos Típicos |
|---|---|
| A+ | Todos os cabeçalhos críticos, pré-carregamento do HSTS |
| A | HSTS, CSP, Opções X-Frame, Tipo de Conteúdo X |
| B | Faltam alguns cabeçalhos |
| C/D | Cabeçalhos mínimos de segurança |
| F | Sem cabeçalhos de segurança |
Os cabeçalhos de segurança representam uma camada crítica de segurança da aplicação web, fornecendo proteção reforçada pelo navegador que complementa as medidas de segurança do servidor.