O que é e como implementar Header HTTP?

Picture of Júlia Valim

Júlia Valim

O que é Header HTTP?

1.0 O que é Header HTTP?

Quando há uma comunicação entre o servidor e o cliente, ambos trocam mensagens, e estas mensagens são, na verdade, chamadas de “pacotes”. Estes pacotes contêm diversas informações, sendo uma delas os “headers”, responsáveis por determinar como irá ser realizado esta comunicação. Através deles podemos implementar medidas de segurança de uma maneira simples, porém eficiente.

A configuração dos headers que implementam essa segurança são aqueles que trazem a resposta da requisição HTTP.

Header HTTP - Como implementar (1)

 

2.0 Tipos de Header

2.1 Referrer-Policy

Serve para controlar a quantidade de informações de referência deve ser incluída nas requisições.

origin | Envia apenas a referência original para a requisição. Ex: google.com/page1.html – vai enviar: google.com/

 

2.2 Header X-Content-Type-Options

Possibilita evitar que os navegadores interpretem o conteúdo da página, como no caso em que é feito o upload de um arquivo de texto com um código Javascript e o navegador o executa.

nosniff | Informa que ele não deve analisar e interpretar o conteúdo

X-Content-Type-Options: nosniff;

 

2.3 Header HTTP Strict-Transport-Security;

Permite obrigar a utilizar o protocolo SSL/TLS. Faz com que a página só aceite conteúdo com o certificado SSL/TLS. Com essa aplicação, você evita ataques do tipo “Man in the Middle”, que é basicamente quando o atacante intercepta uma comunicação e consegue os dados através dela, sendo que muitas vezes a vítima não percebe que ocorreu.

max-age | Quanto tempo (segundos) o navegador se lembra que a aplicação é acessada apenas por HTTPS

includeSubDomains | Define os subdomínios que devem respeitar o header

Strict-Transport-Security: max-age=32500; includeSubDomains

 

2.4 Header X-Frame-Options

Serve para impedir que o navegador exiba um tipo de conteúdo. Funciona bem para evitar ataques Clickjacking, que é quando um invasor insere uma camada invisível no site para o usuário colocar suas credenciais a fim de fazer login, porém, na verdade, estão sendo transmitidas para o atacante.

sameorigin | Irá carregar somente conteúdo da mesma URL

deny | Não permite carregar nenhum objeto externo

X-Frame-Options: deny; sameorigin

 

3.0 Como Implementar Headers

3.1 Apache

Apache é um servidor de código aberto e altamente personalizável, tem uma estrutura baseada em módulos e é um dos mais utilizados até hoje.

Para implementar headers nele é bem simples:

  1. Abra o arquivo de configuração

sudo nano/etc/apache2/apache2.conf

  1. Insira os headers

Header set X-XSS-Protection “1; mode=block”

Header always set X-Frame-Options SAMEORIGIN

  1. Reinicie o servidor

systemctl restart apache2

 

Header HTTP - Como implementar (2)

3.2 NGINX

O Nginx é um servidor rápido, fácil de configurar e tem um baixo consumo de recursos, sendo muito utilizado por grandes empresas, como: IBM, Google, etc.

No NGINX, basta você ir até o diretório do seu servidor geralmente “etc/nginx”. Lá, você deve procurar um arquivo com o nome do seu domínio “.conf”;

Dentro da seção “server” do arquivo, você irá implementar os headers que deseja. Salve, feche o arquivo e reinicie o servidor (sudo system1 restar nginx).

Então:

  1. sudo nano/etc/nginx/nginx.conf
  2. (adiciona os headers que deseja)

add_header X-XSS-Protection “1; mode=block”;

add_header X-Frame-Options SAMEORIGIN;

  1. Salvar e fechar o arquivo
  2. Reiniciar o servidor

sudo service nginx restart

Header HTTP - Como implementar (3)

3.3 IIS

Internet Information Services é um servidor WEB feito pela Microsoft para seus sistemas operacionais e servidores, sendo sua primeira vez introduzida no Windows NT Server.

Para implementar os headers no IIS, basta seguir estes passos:

  1. Abra o Gerenciador de Serviços de Internet e selecione o site que você deseja implementar
  2. Vá em “HTTP Response Headers”
  3. Clique em “Add”
  4. Adicione os headers que deseja

X-XSS-Protection: name=X-XSS-Protection, value=1; mode=block.

X-Frame-Options: name=X-Frame-Options, value=SAMEORIGIN.

  1. Salve e feche o Gerenciador de Serviços de Internet.

Header HTTP - Como implementar (4)

4.0 Testes de domínios com headers

tesla.com

Possui apenas o “Permissions-Policy” e “Strict-Transport-Security” configurados.

Header HTTP - Como implementar (5)

pudim.com

Não possuiu nenhum header configurado.

Header HTTP - Como implementar (6)

Clique aqui para falar com a nossa equipe e saber mais sobre nosso trabalho.

Quer acompanhar mais conteúdos da Vantico? Clique aqui e siga-nos no LinkedIn.

 

5.0 Referências:

HTTP Security Response Headers Cheat Sheet | OWASP

OWASP Secure Headers Project | OWASP

Security Headers

 

veja também

Outros conteúdos sobre Segurança Cibernética