Este post também está disponível em:
O que são security headers?
Sempre que um navegador solicita uma página de um servidor web, o servidor responde com o conteúdo junto com “cabeçalhos”. Alguns cabeçalhos contêm metadados de conteúdo, como quando a página foi modificada pela última vez. Outros incluem o nome e a versão do servidor web, cookies, se o navegador deve armazenar o conteúdo em cache, etc. Os security headers são cabeçalhos que permitem que você diga ao navegador do seu cliente como se comportar ao manipular o conteúdo do seu site. Por exemplo, um cabeçalho pode especificar “não me abra dentro de um quadro(iframe)” ou “fale comigo apenas por HTTPS”. Existem vários tipos de security headers com funções distintas.
Por que os security headers são tão importantes?
Prevenção de ataques: Os security headers ajudam a prevenir uma série de ataques comuns.
XSS (Cross-Site Scripting): Impedem que scripts maliciosos sejam executados no navegador do usuário.
Clickjacking: Evitam que um site seja embutido em outro de forma enganosa, forçando o usuário a realizar ações indesejadas.
Injeção: Dificultam a injeção de código malicioso em formulários e outros pontos de entrada.
Proteção de dados: Ao configurar corretamente os security headers, você pode garantir que os dados sensíveis dos seus usuários sejam transmitidos de forma segura, usando protocolos criptografados como HTTPS.
Melhora da reputação do site: Sites seguros tendem a ter uma melhor classificação nos resultados de busca e a gerar mais confiança nos usuários.
Tipos de security headers
A seguir seguem os security headers que iremos abordar nesse post e função.
X-Content-Type-Options
O header X-Content-Type-Options é uma configuração de segurança HTTP que ajuda a proteger contra ataques baseados em interpretação errada do tipo de conteúdo, como o MIME sniffing.
Ele instrui o navegador a não tentar adivinhar o tipo de conteúdo dos arquivos, utilizando apenas o tipo MIME declarado pelo servidor.
Por que o MIME sniffing é perigoso?
- O MIME sniffing ocorre quando o navegador tenta determinar o tipo de arquivo analisando seu conteúdo, ignorando o que foi especificado pelo servidor no cabeçalho Content-Type.
- Isso pode levar a problemas de segurança.
- Execução de scripts maliciosos: Um arquivo enviado como texto pode ser interpretado erroneamente como HTML ou JavaScript, permitindo ataques de Cross-Site Scripting (XSS).
- Download inseguro de arquivos: Arquivos maliciosos podem ser executados automaticamente no navegador se o tipo MIME for interpretado de forma incorreta.
X-Frame-Options
O header X-Frame-Options é uma configuração de segurança HTTP que ajuda a proteger os sites contra ataques de Clickjacking. Ele controla se uma página pode ou não ser exibida dentro de um iframe em outros sites, impedindo que conteúdo legítimo seja carregado em contextos maliciosos.
X-XSS-Protection
O header de resposta HTTP X-XSS-Protection é uma medida de segurança criada para atenuar os ataques de XSS (Cross-Site Scripting). Os ataques XSS envolvem a injeção de scripts mal-intencionados em páginas da Web, que podem ser executados por usuários desavisados.
Strict-Transport-Security
O cabeçalho Strict-Transport-Security
(também conhecido como HSTS – HTTP Strict Transport Security) é uma configuração de segurança HTTP que força os navegadores a acessarem um site apenas por meio de conexões seguras (HTTPS). Ele ajuda a prevenir ataques de downgrade e man-in-the-middle (MITM), protegendo a comunicação entre os usuários e o servidor.
Referrer-Policy
O cabeçalho Referrer-Policy
é essencial para proteger a privacidade do usuário e evitar a exposição de informações sensíveis através do cabeçalho Referer
. Escolher a política correta depende do nível de privacidade e das necessidades da aplicação. Configurar corretamente este cabeçalho é uma prática recomendada de segurança para qualquer site moderno.
Content Security Policy
O header Content Security Policy (CSP) é um mecanismo de segurança avançado que ajuda a atenuar uma ampla gama de vulnerabilidades de aplicativos da Web, principalmente ataques de XSS (Cross-Site Scripting). Ele funciona definindo uma lista branca de fontes confiáveis a partir das quais o navegador pode carregar recursos como scripts, folhas de estilo e imagens.
Observação: Se não tivéssemos utilizando o cloudflare seria necessário criar instruções no Web Server do servidor(NGINX, Apache, Litespeed…)
1- Acesse sua conta no cloudflare, clique no domínio que iremos implementar as security headers.
2- em DNS certifique-se que na entrada do tipo A com o nome de seu domínio esteja com a nuvem laranja.(faça o mesmo com www).

3 – Na coluna da esquerda, clique no menu Rules para exibir as opções e selecione Transform Rules
4 – Clique em Modify Response Header e a seguir no botão Create rule.
5 – Em Rule name, dê um nome para identificar sua rule. Em If incoming requests match…, selecione All incoming requests e em Then… selecione Set static
Abaixo segue o nome do header e o valor que iremos utilizar.
Header name | Value |
x-content-type-options | nosniff |
x-frame-options | SAMEORIGIN |
x-xss-protection | 1; mode=block |
strict-transport-security | max-age=31536000; includeSubDomains; preload |
referrer-policy | no-referrer-when-downgrade |
content-security-policy | upgrade-insecure-requests; block-all-mixed-content |
permissions-policy | accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=() |
Seguindo a tabela acima preencha o Header name e valor. Ao final clique em deploy para ativar os headers.
Ao terminar, você terá este resultado.
Agora vamos testar se os security headers estão ok em seu site. Acesse https://securityheaders.com/ , digite seu domínio e a seguir botão scan. Você terá este resultado: