Cabeçalho HTTP Strict-Transport-Security (HSTS)
Gabarito: letra E. O cabeçalho Strict-Transport-Security (HSTS) é o único que instrui o navegador a carregar o site exclusivamente via HTTPS, descartando conexões HTTP inseguras. A questão cobra o conhecimento da finalidade dos principais cabeçalhos de segurança HTTP.
A tabela abaixo resume a função de cada cabeçalho:
Cabeçalho | Função Principal |
|---|
Referrer-Policy | Controla a quantidade de informação de referência enviada nas requisições. |
X-XSS-Protection | Ativa ou desativa o filtro de cross-site scripting (XSS) nos navegadores (obsoleto/desaconselhado). |
X-Frame-Options | Previne que a página seja carregada em elementos frame/iframe (proteção contra clickjacking). |
Content-Security-Policy | Define uma política de segurança de conteúdo, restringindo recursos que o navegador pode carregar. |
Strict-Transport-Security | Instrui o navegador a sempre acessar o site por HTTPS, convertendo links HTTP para HTTPS e impedindo conexões inseguras. |
Alternativa A — ❌ Incorreta
O cabeçalho Referrer-Policy não tem relação com a exigência de HTTPS. Ele define como o campo Referer é enviado nas requisições, podendo limitar a quantidade de dados compartilhados entre origens.
Alternativa B — ❌ Incorreta
O cabeçalho X-XSS-Protection ativa o filtro de XSS dos navegadores (ex.: 1; mode=block). Embora seja de segurança, não força o uso de HTTPS.
Alternativa C — ❌ Incorreta
O cabeçalho X-Frame-Options controla se a página pode ser exibida em frames (DENY, SAMEORIGIN). Protege contra clickjacking, mas não obriga HTTPS.
Alternativa D — ❌ Incorreta
O cabeçalho Content-Security-Policy (CSP) é uma política abrangente que define fontes confiáveis para diversos tipos de recursos (scripts, estilos, imagens). Embora possa ter diretivas como upgrade-insecure-requests, não é o cabeçalho específico para forçar HTTPS de forma direta; o HSTS é a solução padrão.
Alternativa E — ✅ Correta ⟵ GABARITO
O cabeçalho Strict-Transport-Security (HSTS) informa ao navegador que o site deve ser acessado exclusivamente via HTTPS, por um período especificado no campo max-age. Exemplo: Strict-Transport-Security: max-age=31536000; includeSubDomains. Ao receber esse cabeçalho, o navegador automaticamente converte qualquer tentativa de acesso HTTP para HTTPS, recusando conexões inseguras. É exatamente o que André precisa configurar no nginx para garantir que o site do TRF1 seja carregado apenas por HTTPS.
Gabarito: letra E.