24/04/22

Headers HTTP: 3 formas de proteger seu site com eles

Você sabe o que são Headers de segurança? Não?

Mas, provavelmente, você sabe que proteger um site pode ir muito além do que se imagina. Ao pensar que diversos negócios constantemente nascem no meio digital, a segurança da informação é cada vez mais indispensável para a manutenção da privacidade, como também pode ajudar a evitar grandes prejuízos para esses negócios.

Ter um site seguro, como mostramos no artigo de segurança para WordPress, nem sempre é uma tarefa simples, mas traz imensos benefícios ao site, além de ajudar a evitar inúmeros problemas. Pensando nisso, iremos abordar os cabeçalhos (os headers, do inglês) do HTTP.

Esse é um assunto não muito abordado, mas de suma importância para a segurança de seu site. De forma resumida, os cabeçalhos servem para definir parâmetros da comunicação do servidor web (a hospedagem do site) com o cliente (a pessoa que acessa o site).

Vale ressaltar que, neste artigo, não será possível ir muito fundo no conceito dessa aplicação em si, tomaremos mais aplicação prática dessa função e, especificamente, sobre os que mais ajudam em questões de segurança.

Acompanhe os próximos tópicos para entender melhor como isso pode influenciar nos aspectos de segurança.

Sumário

  1. O que são os headers
  2. Por que utilizar?
  3. Os principais cabeçalhos de segurança
  4. Como configurar os cabeçalhos em seu site
  5. Conclusão

O que são os headers

O que são headers de segurança

Em síntese, os cabeçalhos manipulam a solicitação e entrega de informações entre o servidor e usuário, através dos headers de solicitação (request) e de resposta (response). Os cabeçalhos possuem quatro tipos, são eles: de solicitação, de resposta, geral e de entidade.

Cada tipo conta com suas particularidades, mas que ainda não serão abordadas completamente por aqui.

Eles podem, entre muitas outras coisas, informar o status da página (como em erros 404 e 500), definir e orientar parâmetros de cache e transferir informações sobre tipos MIME.

Por que utilizar os headers?

Os headers de segurança podem ser grandes aliados para impedir diferentes tipos de golpes a fraudes em seu site. Podem, por exemplo ajudar a validar o uso de SSL e TLS, proteger o site contra injeção de scripts externos maliciosos e contra clickjacking, inseridos em tags semelhantes à <iframe>.

Com isso, pode-se evitar que ações indesejadas ocorram no meio desse processo de troca de informações, impedido eventuais brechas de segurança, como ataques de força bruta (brute force), por exemplo.

As vulnerabilidades causadas pela não configuração dos cabeçalhos podem, entre outras coisas, levar o usuário a executar ações na página que, na verdade, são executadas em um ambiente malicioso, totalmente manipulado por um usuário mal intencionado.

Os principais cabeçalhos de segurança

Os principais headers

HTTP Strict Transport Security (HSTS)

Disponível apenas para aplicações que utilizam integralmente o protocolo HTTPS, é responsável pela implementação de criptografia, por SSL e/ou TLS, sem que haja alguma informação sendo carregada a partir do protocolo HTTP. Além disso, executa verificações do Certificado de Segurança, o SSL.

Uma vez que o SSL/TLS se faz obrigatório, toda a informação trocada entre o servidor e o cliente é criptografada, reduzindo a chance de ser interceptada e decifrada no trajeto, tornando o processo muito mais seguro.

Sendo um dos cabeçalhos mais importantes, há um meio de verificar o status de seu site em relação ao HSTS. Para isso, você poderá acessar o site da HSTS Preload, que irá informar como seu site está e ainda fornecer alguns parâmetros para a configuração.

Proteção X-XSS

A principal função desse cabeçalho é impedir scripts maliciosos de serem executados em sua página a partir de outros sites, o que é chamado de Cross-Site Scripting, ou XSS.

Esse tipo de vulnerabilidade consiste em um agente mal intencionado adicionar algum tipo de script malicioso em uma página, manipulando o conteúdo em favor dele.

O problema do XSS pode ser, por exemplo, uma página de login manipulada, que envia as informações, roubando dados de clientes que deveriam ser encaminhados para o seu site

X-Frame-Options

De forma muito semelhante ao X-XSS, sua função é bloquear a renderização de conteúdos externos, contidos em tags como: <object>, <frame> e <iframe>. Esse cabeçalho ajuda a proteger contra ataques do tipo Clickjacking.

O Clickjacking é, basicamente, uma fraude que pode levar a informações que não deveriam ser acessadas. Essa técnica consiste em enganar o usuário, fazendo com que ele clique em algo que, na verdade, não é aquilo que parece. Dessa forma, as ações são controladas e executadas de acordo com o que quem instaurou essa fraude desejar fazer.

X-Content-Type-Options

Esse header é muito interessante e, claro, extremamente útil. Através dela, é possível fazer com que os conteúdos enviados ao site por meio de upload, por exemplo, não tenham seu conteúdo executado em forma de código. Ele informa ao servidor que os tipos MIME não têm de ser seguidos e alterados.

Com esse cabeçalho desativado, seria possível injetar qualquer tipo de código em um site simplesmente enviando um arquivo para ele, podendo tomar o controle e executar as ações que bem entendesse.

Como configurar os headers de segurança

Configurando via htaccess

A maneira mais efetiva e generalista de adicionar os cabeçalhos é através do arquivo .htaccess, que fica localizado no diretório raiz onde seu site estiver localizado.

Todo o procedimento é extremamente simples, e pode ser feito utilizando um editor de texto de sua preferência. Para fazer isso, basta adicionar todo o código abaixo dentro de seu arquivo .htaccess.

<ifModule mod_headers.c>

Header set Strict-Transport-Security “max-age=31536000” env=HTTPS

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

Header set X-Content-Type-Options nosniff

Header set X-Frame-Options DENY

</ifModule>

No caso de não existir este arquivo, você poderá criá-lo e adicionar todo o código acima. Lembre-se que esse arquivo é de máxima importância e deve ter permissões restritas. Se possível, mantenha as permissões deste arquivo em 400, ou 644 caso seu site realize atualizações constantes no htaccess.

Entendendo os parâmetros

Em Strict-Transport-Security, a diretiva max-age define o tempo, em segundos, que o navegador terá uma espécie de cache, uma memória de que esse site tem abertura assegurada através do HTTPS. É possível, ainda, adicionar um complemento para que o site inclua subdomínios nesta mesma diretiva, exemplo: Strict-Transport-Security: max-age=16070400; includeSubDomains

Em X-XSS-Protection, o valor 1 serve para informar que esse cabeçalho está ativo, enquanto o “block” fica encarregado de impedir o conteúdo.

Já no X-Content-Type-Options, temos apenas o parâmetro nosniff, que é responsável por orientar o navegador do usuário anão analisar o conteúdo.

O X-Frame-Options também tem apenas uma diretiva, o “DENY” que, como o nome sugere, impede que nenhum objeto externo seja carregado. Existem ainda, outras opções, como o SAMEORIGIN (que apenas carregará conteúdos de mesma origem, url) e a ALLOW-FROM, que carregará elementos de um URL específico.

Configurando via Plugins no WordPress

Sendo utilizado pela maioria dos sites em toda a internet, o WordPress não poderia ficar de fora da nossa lista, e o processo de configuração dos cabeçalhos nele também é bem simples.

Antes de tudo, é necessário dizer que o procedimento de configuração através do htaccess é igualmente válido para o WP. A etapa a seguir, que faremos através de um plugin, é apenas para facilitação do processo.

Para configurar no WordPress, usaremos o plugin chamado HTTP Headers, que possui uma gama imensa de opções de configuração dos cabeçalhos.

Plugin WordPress HTTP Headers

Uma vez instalado e ativo, siga os seguintes passos:

  1. Com seu WP Admin aberto, navegue na barra lateral e encontre a guia “Configurações” e, dentro dela, localize “HTTP Headers”. Feito isso, estaremos na aba de configuração do plugin;
  2. Agora, encontre o tipo de cabeçalho que deseja adicionar. No nosso caso, focaremos nos de segurança e, por isso, escolheremos a opção “Security”;
    Painel plugin
  3. Abrindo, você terá uma lista que contém várias opções para poder adicionar e configurar como desejar;
    Lista de cabeçalhos de segurança
  4. Primeiro, escolha o tipo de cabeçalho e clique em “Edit”. Para o exemplo, faremos com o X-Frame-Options;
  5. Assim que abrir a página de configuração, será possível encontrar as opções de on e off, para ativar ou desativar. Ao lado, será possível ver os parâmetros específicos de configuração dele, que também podem ser ajustados nessa mesma página;
    Configurando cabeçalho x-frame
  6. Configure da forma que achar mais adequada (de acordo com as orientações sobre cada parâmetro que informamos acima) e salve;
  7. Agora, olhando nosso arquivo htaccess, podemos ver que o cabeçalho foi adicionado com sucesso.
    Cabeçalhos inseridos no HTACCESS

Como ativar o HSTS pelo CloudFlare

O CloudFlare é o CDN queridinho de muita gente, muito por conta de seu plano gratuito e pela grande quantidade de recursos oferecidos. Um deles, inclusive, é a configuração do cabeçalho HSTS de forma extremamente simples, para configurar através dele, siga os seguintes passos:

  1. Com sua conta do CloudFlare aberta, localize seu site e abra o painel dele;
  2. Agora, localize a guia “SSL/TLS” na barra lateral à esquerda e clique em “Certificados de borda”;
    HSTS no CloudFlare
  3. Desça um pouco a página e busque pela opção “HTTP Strict Transport Security (HSTS)”. Quando encontrar, clique em “Habilitar HSTS”;
    Habilitar HSTS no CloudFlare
  4. Um pop-up se abrirá informando algumas especificações e orientações. Leia tudo, para garantir que está tudo certo e clique em “Entendo” para confirmar e, depois, em “Próxima” para avançar;
  5. Agora que está na sessão de configuração, você poderá definir os parâmetros como bem desejar. Novamente, a recomendação é ler as opções ajustar como for mais adequado ao seu caso;
  6. Parâmetros do HSTS
  7. Com tudo pronto, clique em “Salvar” e a configuração estará finalizada.
    HSTS configurado

Conclusão

Chegando ao fim de mais um artigo sobre segurança, agora você pode finalmente dizer que possui um site mais seguro, e já sabe configurar diferentes tipos de cabeçalhos através de diversos meios. Utilizando-se das melhores técnicas de boas práticas de proteção, fortalecendo a configuração de cabeçalhos e seguindo as dicas de Como proteger seu WordPress, certamente a melhoria será enorme nesse aspecto.

Caso deseje, o site da organização Mozilla disponibiliza uma vasta documentação, na qual também é falado um pouco sobre os cabeçalhos de segurança. Para conferir a lista completa, e em português, basta clicar aqui.

Ter seu site mais seguro é extremamente importante para você e todos que o acessam, principalmente quando falamos daqueles que dependem totalmente de seus websites como fonte de renda, o que é ainda mais acentuado quando se trata de lojas virtuais. Por isso, tente sempre seguir as recomendações que listamos aqui e continue acompanhando nosso blog para mais conteúdos como este =)

Chat
24/7 11 95052-7555 0800 481 7000 chat
cookie