Ir para o conteúdo principal
Bethemesh

Gerador de cabeçalhos de segurança

Configure os cabeçalhos HTTP de segurança a partir de um modelo equilibrado, rigoroso ou compatível: HSTS (max-age, includeSubDomains, preload), X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP, CORP, COEP e X-Frame-Options, com saída em bruto, Nginx e Apache e avisos de configuração.

  • Área de transferência

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

Modelo

Strict-Transport-Security (HSTS)

Ativar X-Content-Type-Options: nosniff

Referrer-Policy

Uma diretiva por linha ou separada por vírgula.

Cabeçalhos HTTP

Cabeçalhos HTTP

Configuração Nginx

Configuração Apache

Esta ferramenta foi útil?

Como funciona esta ferramenta?

Este gerador produz os cabeçalhos HTTP de segurança esperados de um site em produção: HSTS, nosniff, Referrer-Policy, Permissions-Policy, isolamento cross-origin e proteção contra a incorporação em iframes. Destina-se a programadores e administradores que pretendem uma configuração Nginx ou Apache coerente e explicada, em vez de um copiar e colar ao acaso.

Cada cabeçalho cobre um risco concreto. `Strict-Transport-Security: max-age=31536000; includeSubDomains` (RFC 6797) obriga o navegador a usar apenas HTTPS durante um ano; a lista preload de hstspreload.org exige ainda pelo menos 31536000 segundos, includeSubDomains e preload. `X-Content-Type-Options: nosniff` impede o navegador de adivinhar o tipo MIME de uma resposta. `Referrer-Policy: strict-origin-when-cross-origin` envia apenas a origem aos outros sites. `Permissions-Policy: camera=(), microphone=(), geolocation=()` desativa essas API para a página e os seus iframes.

Os cabeçalhos de isolamento funcionam em conjunto: `Cross-Origin-Opener-Policy: same-origin` separa a sua janela dos pop-ups de outras origens, `Cross-Origin-Resource-Policy` limita quem pode carregar os seus recursos e `Cross-Origin-Embedder-Policy: require-corp` (ou credentialless) só aceita recursos que o autorizem explicitamente; COOP + COEP tornam a página «cross-origin isolated», condição exigida pelo SharedArrayBuffer. X-Frame-Options (DENY ou SAMEORIGIN) bloqueia a incorporação em iframes contra o clickjacking. A ferramenta produz estes cabeçalhos em texto simples, em diretivas Nginx `add_header … always;` e em linhas Apache `Header always set …`, e avisa quando o HSTS é inferior a 180 dias, quando há preload sem includeSubDomains, uma Referrer-Policy demasiado permissiva ou falta de nosniff ou de proteção contra iframes.

Como usar esta ferramenta

  1. Escolha um modelo

    Parta de Equilibrado (carregado por predefinição), Rigoroso ou Compatível: todos os campos são preenchidos com os seus valores.

  2. Ajuste cada cabeçalho

    Configure HSTS (ativação, max-age em segundos, subdomínios, preload), nosniff, Referrer-Policy, X-Frame-Options, COOP, CORP e COEP e escreva as diretivas Permissions-Policy, uma por linha ou separadas por vírgulas.

  3. Gere e copie

    Clique em «Gerar cabeçalhos», leia os avisos e copie ou exporte a versão em bruto, Nginx ou Apache.

Casos de uso

Obter um A num scanner de cabeçalhos

O Securityheaders.com ou o Mozilla Observatory assinalam cabeçalhos em falta: gere o modelo Equilibrado, acrescente-o ao bloco server do Nginx e volte a analisar.

Preparar a inscrição na lista HSTS preload

Confirme que o max-age é de pelo menos um ano e que includeSubDomains e preload estão presentes antes de submeter o domínio em hstspreload.org.

Ativar SharedArrayBuffer ou threads WebAssembly

O modelo Rigoroso combina COOP same-origin e COEP require-corp, os dois cabeçalhos de que uma página precisa para ficar cross-origin isolated.

Exemplos

Quatro cabeçalhos HTTP de proteção

Entrada

Ativar HSTS: sim; Duração max-age (segundos): 31536000; Incluir subdomínios: sim; Pedir preload: não; Ativar X-Content-Type-Options: nosniff: sim; Referrer-Policy: strict-origin-when-cross-origin; X-Frame-Options: DENY

Resultado

Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
X-Frame-Options: DENY
Nenhum aviso

Dicas e boas práticas

  • No Nginx, um `add_header` dentro de um bloco location anula todos os herdados do bloco server: repita os cabeçalhos de segurança em cada location que defina os seus.
  • Comece o HSTS com um max-age curto (300 s e depois uma semana) se alguns subdomínios ainda não usarem HTTPS: um valor longo ou o preload são difíceis de reverter.
  • Ative COEP require-corp só depois de verificar os recursos de terceiros (imagens, tipos de letra, vídeos): os que não enviarem CORP nem CORS serão bloqueados.

Fontes e referências

Perguntas frequentes

Que cabeçalhos de segurança HTTP deve ter um site?

A base recomendada pela OWASP inclui Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options: nosniff, Referrer-Policy, proteção contra iframes (X-Frame-Options ou frame-ancestors) e, conforme as necessidades, Permissions-Policy e os cabeçalhos COOP/CORP/COEP. A CSP cria-se à parte, com o gerador de CSP.

Que max-age usar no HSTS?

Um ano (31536000 segundos) é o valor habitual e o mínimo exigido para a lista preload; dois anos (63072000) são frequentemente recomendados. Durante uma migração, comece com um valor curto e aumente-o gradualmente, pois o navegador memoriza a regra durante todo o período indicado.

Ainda é preciso X-XSS-Protection?

Não. O filtro XSS dos navegadores foi removido e a OWASP recomenda não enviar este cabeçalho (ou defini-lo como 0), porque podia introduzir vulnerabilidades. A proteção moderna contra XSS assenta numa Content Security Policy, razão pela qual a ferramenta não o propõe.

X-Frame-Options DENY ou SAMEORIGIN?

DENY proíbe qualquer incorporação das suas páginas em iframes; SAMEORIGIN só a permite a partir da sua própria origem, útil para um back-office ou um editor que se apresenta num iframe. ALLOW-FROM está obsoleto: para autorizar um domínio específico, utilize frame-ancestors na CSP.

Porque é que as imagens ou os tipos de letra ficam bloqueados depois de acrescentar COEP?

Cross-Origin-Embedder-Policy: require-corp recusa qualquer recurso de outra origem que não envie Cross-Origin-Resource-Policy ou cabeçalhos CORS. Peça ao fornecedor que os acrescente, carregue o recurso com crossorigin ou utilize o valor credentialless, mais tolerante.

Como acrescentar estes cabeçalhos no Nginx ou no Apache?

No Nginx, cole as linhas `add_header … always;` no bloco server (always envia-os também nas respostas de erro) e recarregue com `nginx -t && nginx -s reload`. No Apache, ative o mod_headers e coloque as linhas `Header always set …` no VirtualHost ou num .htaccess.

Ferramentas relacionadas

Ferramentas semelhantes ou complementares a esta.

Ferramentas semelhantes

Crie uma Content Security Policy diretiva a diretiva, com cabeçalho HTTP, etiqueta meta e avisos.

Segurança e privacidadeUtilizar esta ferramenta

Analise cabeçalhos HTTP para verificar segurança, cache, CORS e cookies de uma resposta.

Segurança e privacidadeUtilizar esta ferramenta