Verificação de cabeçalhos de segurança
Os cabeçalhos de segurança são instruções que o seu servidor junta a cada resposta HTTP, dizendo ao navegador para ativar proteções que ele não aplica por omissão: bloquear scripts injetados, forçar HTTPS, recusar o enquadramento e parar o farejamento MIME. Insira um URL e este verificador obtém a resposta final, classifica seis cabeçalhos em 100 pontos, mostra o valor exato encontrado em cada um, explica o risco numa linha e entrega-lhe a configuração de Nginx ou Apache para colar quando um cabeçalho falta ou é fraco. Se só quer a versão rápida, a verificação de saúde do site já inclui uma subpontuação de cabeçalhos de segurança no seu relatório geral — esta página é o mergulho profundo: notas por cabeçalho e correções, e nada mais.
Última atualização:
Quer vigiar isto continuamente? Vigie grátis com o myeventwatch — alertas de expiração e de indisponibilidade, sem cartão.
O mergulho profundo, ao lado da nota rápida do exame de saúde
A verificação de saúde do site responde a uma pergunta ampla — este site está saudável no geral? — e dobra os cabeçalhos de segurança nessa resposta como uma subpontuação entre muitas. Essa é a forma certa para um exame de rotina, mas não lhe diz qual cabeçalho perdeu os pontos, que valor o seu servidor realmente enviou, nem o que colar na sua configuração para o corrigir. Esta página existe para o trabalho que se segue: uma única obtenção, seis cabeçalhos classificados, uma nota em letras e, para cada cabeçalho em falta ou fraco, as linhas exatas de Nginx e Apache que o adicionam ou reforçam. Nada aqui é uma caixa negra — a tabela completa de pontuação está publicada na secção de factos abaixo, e é exatamente a tabela contra a qual o verificador classifica.
Como funciona a verificação: o verificador pede o URL que inseriu, segue os redirecionamentos e classifica os cabeçalhos da resposta final — a resposta a partir da qual o navegador construiria realmente a página. É uma obtenção HTTP simples, não um navegador: nenhum JavaScript é executado, nenhum sub-recurso é carregado, e os cabeçalhos que só aparecem noutros caminhos ou depois do início de sessão não são vistos. A pontuação mede uma camada específica — se estas seis proteções orientadas ao navegador estão presentes e são fortes — e nada mais. Um site pode marcar 100 e ainda ter um erro de aplicação; um site pode marcar F e nunca ter sido comprometido. Trate a nota como uma lista de endurecimento com pesos, não como um veredito sobre a segurança total do site.
Corrigir, por ordem de impacto
A maior parte da pontuação recupera-se barato. X-Content-Type-Options, a proteção contra frames e Referrer-Policy são uma linha cada um e não partem nada num site normal. Strict-Transport-Security também é uma linha, mas envie-o apenas quando cada página e subdomínio funcionar genuinamente por HTTPS — um max-age de um ano é uma promessa que os navegadores lhe vão cobrar. Permissions-Policy pede dez minutos a pensar sobre que funcionalidades do navegador as suas páginas realmente usam. Content-Security-Policy tem mais pontos e mais risco: implemente-o primeiro como Content-Security-Policy-Report-Only, observe os relatórios de violações, corrija o que partir e só então o aplique. O guia complementar, cabeçalhos de segurança, explicados, percorre o que cada cabeçalho realmente impede e porque é que a ordem de correção é esta.
Verificações vizinhas: a segurança do transporte é a outra metade desta história — o avaliador SSL pontua a própria configuração TLS, enquanto esta página pontua o que o servidor diz sobre essa ligação. Para o exame amplo e de rotina que inclui cabeçalhos juntamente com disponibilidade, DNS e expiração de certificados, volte à verificação de saúde do site.
Uma nota sobre o método: os resultados são um instantâneo de uma obtenção num dado momento. CDNs e configurações com vários servidores podem responder a pedidos diferentes com conjuntos de cabeçalhos diferentes, por isso um resultado surpreendente merece uma nova verificação antes de mudar a configuração — e outra depois da mudança, porque um cabeçalho adicionado na origem nem sempre sobrevive ao proxy que está à frente dele.
A tabela de pontuação publicada
| Content-Security-Policy — 35 pontos | Bom significa uma política aplicada (Report-Only não conta) que mantém os scripts afastados de 'unsafe-inline' e 'unsafe-eval' e restringe de onde os recursos podem ser carregados. O peso maior, porque a CSP é a principal defesa contra scripts injetados. |
| Strict-Transport-Security — 20 pontos | Bom significa um max-age de pelo menos um ano (31536000 segundos) enviado por HTTPS; includeSubDomains reforça-o ainda mais. Max-ages curtos ganham pontos parciais. |
| Proteção contra frames — 15 pontos | Bom significa a diretiva frame-ancestors da CSP ou um cabeçalho X-Frame-Options em DENY ou SAMEORIGIN, para que outros sites não possam embutir as suas páginas num frame para clickjacking. |
| X-Content-Type-Options — 10 pontos | Bom significa o único valor nosniff, para que os navegadores não possam farejar por MIME uma resposta e transformá-la noutro tipo executável. |
| Referrer-Policy — 10 pontos | Bom significa uma política que nunca envia o URL completo para outras origens — strict-origin-when-cross-origin ou mais estrita (same-origin, no-referrer). |
| Permissions-Policy — 10 pontos | Bom significa que o cabeçalho está presente e desliga funcionalidades poderosas do navegador que o site não usa, como câmara, microfone e geolocalização. |
| Cross-Origin-Opener-Policy — bónus | Reportado juntamente com os cabeçalhos pontuados, mas sem valer pontos: isola as suas páginas das janelas de outras origens e fica fora dos 100 de propósito, para que os pesos publicados sejam exatamente os seis cabeçalhos acima. |
| Notas | 95 ou mais é A+, 90+ é A, 80+ é B, 65+ é C, 50+ é D, 35+ é E, e abaixo de 35 é F. Os pontos são atribuídos por cabeçalho conforme a força do valor encontrado; um cabeçalho em falta marca zero na sua linha. |
Perguntas frequentes
Como é calculada a pontuação — é uma caixa negra?
Não. Seis cabeçalhos têm pesos fixos e publicados — CSP 35, HSTS 20, proteção contra frames 15, X-Content-Type-Options 10, Referrer-Policy 10, Permissions-Policy 10 — que somam 100. Cada cabeçalho ganha pontos completos, parciais ou zero conforme a força do valor que o verificador encontrou, e a nota em letras segue as bandas da tabela de factos acima. Cross-Origin-Opener-Policy é reportado como bónus e nunca afeta a pontuação.
Qual é a diferença para a verificação de saúde do site?
A verificação de saúde do site é um exame amplo — disponibilidade, DNS, TLS, expirações e mais — em que os cabeçalhos de segurança aparecem como uma subpontuação rápida. Esta página classifica só cabeçalhos, mas em profundidade: o valor exato encontrado em cada um, veredito e pontos por cabeçalho, o risco em linguagem simples e correções de Nginx e Apache prontas a colar. Use o exame de saúde para detetar o problema e esta página para o corrigir.
Que resposta é classificada — a minha tem redirecionamentos?
São classificados os cabeçalhos da resposta final depois de todos os redirecionamentos, porque é essa a resposta com que o navegador constrói a página. O resultado mostra o URL e o estado finais para que veja onde a cadeia aterrou. Uma ressalva: isto é uma obtenção estática, não um navegador — nenhum JavaScript é executado —, por isso os cabeçalhos que uma framework só adiciona no cliente, ou que aparecem apenas depois do início de sessão ou noutros caminhos, não fazem parte da nota.
O meu site tirou um F. Isso significa que foi pirateado?
Não. Um F significa que a resposta final transportava poucos ou nenhum dos seis cabeçalhos pontuados — o estado comum de uma instalação de servidor ou framework por omissão. Diz que os navegadores dos seus visitantes não estão a receber proteções que poderiam ter; não diz nada sobre se o próprio site foi comprometido. Trabalhe as correções por ordem de impacto e volte a verificar: a maioria dos sites consegue subir várias notas numa tarde.
Uma pontuação de 100 significa que o meu site é seguro?
Não — significa que estes seis cabeçalhos estão presentes e fortes no URL verificado. Os cabeçalhos são uma camada de endurecimento: não corrigem erros de aplicação, palavras-passe fracas, software desatualizado nem uma configuração TLS partida. Combine esta verificação com o avaliador SSL para o transporte e com a verificação de saúde do site para o panorama mais amplo.