Ingeniería
Cabeçalhos de segurança HTTP: Guia definitivo
Configuração de HSTS, CSP, X-Frame-Options e Permissions-Policy. Proteja a sua aplicação web contra XSS, clickjacking e vazamento de dados.
A segurança de um website não se resume à instalação de um certificado SSL. Sem os cabeçalhos de segurança HTTP adequados, a sua aplicação permanece vulnerável a ataques de clickjacking, injeção de scripts maliciosos (XSS) e interceção de tráfego.
Os cabeçalhos de segurança são diretivas enviadas pelo seu servidor nas respostas HTTP que instruem o navegador do visitante a aplicar controlos de segurança rigorosos.
Eis o guia completo dos cabeçalhos essenciais que todos os websites modernos devem implementar.
1. Strict-Transport-Security (HSTS)
O HSTS força os navegadores a comunicar com o seu domínio exclusivamente através de ligações encriptadas HTTPS durante um período determinado, prevenindo ataques de despromoção de protocolo (SSL Stripping).
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
max-age=31536000: Válido durante um ano completo.includeSubDomains: Aplica-se a todos os subdomínios existentes.preload: Autoriza a inclusão do seu domínio nas listas pré-configuradas dos browsers Chrome, Firefox e Safari.
2. Content-Security-Policy (CSP)
O cabeçalho de proteção mais potente e abrangente. O CSP define expressamente quais as origens autorizadas para carregar e executar scripts, folhas de estilo, imagens, fontes e frames.
Content-Security-Policy: default-src 'self'; script-src 'self' https://trustedscripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; frame-ancestors 'none';
Com uma política CSP rigorosa, bloqueia eficazmente ataques de Cross-Site Scripting (XSS), pois scripts maliciosos injetados não autorizados são simplesmente ignorados pelo navegador.
Recomendação: Inicie a implementação com Content-Security-Policy-Report-Only para registar eventuais violações sem quebrar funcionalidades no website ativo.
3. X-Frame-Options
Impede que as suas páginas sejam incorporadas em <frame>, <iframe> ou <object> noutros websites, protegendo os utilizadores contra ataques de clickjacking (camadas invisíveis concebidas para induzir cliques indesejados).
X-Frame-Options: DENY
(Ou SAMEORIGIN se permitir iframes apenas dentro do próprio domínio).
4. X-Content-Type-Options
Impede que os navegadores tentem adivinhar o tipo MIME de um ficheiro (MIME sniffing) quando a declaração do servidor aparenta divergências.
X-Content-Type-Options: nosniff
Isto elimina a possibilidade de ficheiros de imagem submetidos por utilizadores serem executados como scripts executáveis.
5. Referrer-Policy
Controla que volume de informação do endereço URL atual é transmitido quando um visitante clica numa ligação para um website externo.
Referrer-Policy: strict-origin-when-cross-origin
Esta configuração envia o caminho completo nas navegações internas, mas partilha apenas o domínio principal com serviços externos, protegendo parâmetros confidenciais.
6. Permissions-Policy
Restringe o acesso da página a recursos de hardware e APIs do dispositivo do utilizador (câmara, microfone, geolocalização, pagamentos).
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(self)
Cabeçalhos que deve remover da sua configuração
ServereX-Powered-By: Estes cabeçalhos divulgam as versões exatas do seu servidor e linguagem (ex:PHP/8.1,Apache/2.4), fornecendo informações valiosas a ferramentas automáticas de scanning de vulnerabilidades. Desative-os sempre.X-XSS-Protection: Descontinuado e substituído pelo CSP. Pode introduzir falhas de segurança em navegadores modernos.
Audite o seu domínio em securityheaders.com para validar a classificação A+ da sua infraestrutura.