Ir diretamente para o conteúdo

Definições de cookies

Escolha que tipos de cookies permite. Pode alterar a sua escolha a qualquer momento em Definições de cookies, no fundo de cada página. Política de privacidade

Necessários

Sempre ativos

Necessários para iniciar sessão, manter o seu carrinho e memorizar as suas escolhas. Estão sempre ativos.

Que cookies?
  • weboke_sessie, weboke_klant, weboke_remember: a sua sessão e manter a sessão iniciada
  • weboke_basket: o seu carrinho
  • wkBtwIncl: mostrar preços com ou sem IVA
  • wok_cookies: a sua escolha de cookies, 12 meses

Mede que anúncio leva a uma visita ou encomenda, para não pagarmos por anúncios que não dão resultado.

Que cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), até 90 dias
  • OpenAI Ads, anúncios no ChatGPT
  • wok_aff: através de que parceiro chegou até nós (programa de afiliados), 60 dias

4,6

País e idioma

Cada país tem o seu próprio site, com os preços e o IVA desse país.

Ver

O seu site: https, HSTS e cabeçalhos de segurança

Módulo 4: E-mail, site e domínio · Tempo de leitura: 11 minutos

Objetivo de aprendizagem: Depois desta lição, saberá verificar a segurança básica do seu site: um certificado válido, o reencaminhamento para https, o HSTS com um max-age adequado, os principais cabeçalhos de segurança e a atualização do seu CMS.
Conceitos-chave: certificado TLS, https, reencaminhamento para https, HSTS, max-age, includeSubDomains, preload, cabeçalho HTTP, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

O que acontece quando alguém abre o seu site

Quando um cliente digita example.com na barra de endereço, o navegador pede a página ao seu servidor web. Essa comunicação passa por HTTP. No caso do https, existe à volta uma ligação encriptada: TLS. Para isso, o seu site precisa de um certificado TLS (muitas vezes ainda chamado certificado SSL). O certificado comprova que o servidor pertence realmente a example.com, e a encriptação garante que ninguém pelo caminho consegue ler ou alterar o conteúdo. Isto é importante em redes wifi públicas, onde não sabe quem gere a rede (lição 5.3).

Em cada resposta, o servidor envia, além da própria página, uma lista de cabeçalhos (headers): linhas curtas com informação e instruções para o navegador. Não os vê no ecrã, mas determinam em grande parte a forma como o navegador lida com a segurança do seu site. Alguns desses cabeçalhos são cabeçalhos de segurança. Nesta lição, vamos percorrer as quatro camadas: certificado, reencaminhamento, HSTS e cabeçalhos. Depois, veremos brevemente a atualização do próprio site.

Camada 1: um certificado válido

Um certificado está em ordem se cumprir três condições:

  1. não ter expirado;
  2. ter sido emitido por uma entidade emissora de confiança (uma autoridade certificadora reconhecida pelos navegadores, como o Let's Encrypt ou uma entidade comercial);
  3. ser válido para exatamente o nome que o visitante abre: example.com e www.example.com, se utilizar ambos.

Praticamente todos os fornecedores de alojamento tratam hoje em dia de um certificado gratuito renovado automaticamente. Quando algo corre mal, é geralmente porque o domínio aponta para outro servidor, ou porque um registo CAA bloqueia a entidade emissora (lição 4.3).

É importante saber que um cadeado não diz nada sobre a fiabilidade do site. Indica apenas que a ligação está encriptada e que o certificado corresponde ao nome na barra de endereço. Sites de phishing em mijnbank-veilig.example têm igualmente um cadeado. Por isso, na lição 3.2 aprende a interpretar o domínio.

Camada 2: reencaminhar sempre para https

Só o certificado não é suficiente. Quem abre http://example.com, por exemplo através de uma ligação antiga ou ao digitar apenas o nome, deve ser automaticamente reencaminhado para a versão https. A isto chama-se reencaminhamento (um redirect, normalmente com o código de estado 301).

Uma ordem correta é:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (apenas se utilizar www como endereço principal)
http://www.example.com  ->  https://www.example.com

Preste atenção à primeira linha: reencaminhe primeiro de http para https no mesmo nome, e só depois, se aplicável, para www. Assim, o navegador também pode receber a instrução HSTS do nome simples. O internet.nl verifica exatamente isto.

Um erro comum é o reencaminhamento duplicado: no painel de alojamento e num plugin ou no ficheiro .htaccess. Isto pode causar um ciclo infinito ("demasiados reencaminhamentos"). Utilize apenas um local.

Camada 3: HSTS

O reencaminhamento tem um momento fraco: o primeiríssimo pedido ainda é feito sem encriptação, via http. Um atacante na mesma rede pode intercetar esse pedido e manter o visitante numa versão falsificada e sem encriptação. É para isso que serve o HSTS (HTTP Strict Transport Security, RFC 6797).

Com o HSTS, o seu site envia, via https, um cabeçalho:

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

O navegador memoriza então: "abrir este site apenas via https, durante os próximos 31.536.000 segundos (um ano)". Se o visitante digitar mais tarde http://example.com, o próprio navegador converte-o em https, antes mesmo de qualquer comunicação passar pela rede. O pedido inicial vulnerável deixa de existir.

ElementoSignificado
max-age=Durante quanto tempo o navegador memoriza isto, em segundos. O internet.nl considera pelo menos um ano (max-age=31536000) como suficiente; um período curto não protege as pessoas que visitam o seu site apenas ocasionalmente.
includeSubDomainsAplica-se também a todos os subdomínios, como shop.example.com e mail.example.com.
preloadEstá a pedir inclusão na lista incorporada nos navegadores (hstspreload.org). Assim, até a primeiríssima visita fica protegida. Requisitos: entre outros, max-age de pelo menos um ano, includeSubDomains e todos os subdomínios em https. Sair da lista demora muito tempo.
max-age=0Apaga a instrução memorizada.

Três coisas que precisa de saber antes de ativar o HSTS:

  • Primeiro, o https tem de funcionar em todo o lado. Um navegador que tenha memorizado o HSTS e encontre um erro de certificado não dá ao visitante nenhuma opção para continuar na mesma (RFC 6797, secção 12.1). Se o seu certificado expirar ou não corresponder ao www, o seu site fica inacessível para esses visitantes até o problema ser resolvido.
  • O includeSubDomains afeta tudo o que está sob o seu domínio. Um subdomínio antigo sem certificado, por exemplo uma página de impressora ou câmara em camera.example.com, deixa de poder ser aberto.
  • Construa-o progressivamente. Comece com um max-age curto (por exemplo, um dia), verifique se tudo funciona e aumente gradualmente até um ano. Em cada etapa, aguarde todo o período definido.

Um cabeçalho HSTS recebido através de http comum é ignorado pelo navegador. Portanto, só o verá na resposta https.

Camada 4: cabeçalhos de segurança

Além do HSTS, existem alguns cabeçalhos que indicam ao navegador o que pode e não pode fazer com as suas páginas. Não precisa de os ter todos perfeitos, mas os três primeiros são simples e sem qualquer risco.

CabeçalhoContra o quêValor adequado
X-Content-Type-OptionsO navegador tenta adivinhar o que é um ficheiro, o que pode levar a que uma "imagem" carregada seja executada como script.nosniff (o único valor válido)
Content-Security-Policy: frame-ancestors ... ou X-Frame-OptionsClickjacking: outro site carrega a sua página de forma invisível num frame e faz com que os visitantes cliquem, sem se aperceberem, nos seus botões.frame-ancestors 'self' ou 'none'; o cabeçalho mais antigo X-Frame-Options: SAMEORIGIN ou DENY
Referrer-PolicyAo clicar para outro site, o navegador envia o endereço da página anterior. Isso pode conter informação sensível, como um termo de pesquisa ou um número de encomenda.no-referrer ou same-origin (rigoroso), strict-origin-when-cross-origin (habitual; o internet.nl dá aqui um aviso)
Content-Security-Policy (completa)Limita a partir de que locais podem ser carregados scripts, estilos e imagens. Dificulta muito a inserção de scripts maliciosos (XSS).Personalizada para cada site. Evite unsafe-inline, unsafe-eval e caracteres universais.

Uma Content-Security-Policy completa é a mais eficaz, mas também a mais difícil: uma regra demasiado rigorosa pode quebrar as suas estatísticas, o botão de pagamento ou a janela de chat. Com a variante Content-Security-Policy-Report-Only pode medir primeiro o que seria bloqueado, sem quebrar nada. Deixe isto a cargo do criador do seu site, ou comece apenas com frame-ancestors.

Ver os cabeçalhos por si próprio

Abra o seu site num navegador, pressione F12 (ou escolha "Inspecionar"), vá ao separador Rede, carregue a página novamente e clique no primeiro pedido. Em "Cabeçalhos de resposta" (Response Headers) vê tudo o que o servidor envia. Também pode ser feito através da linha de comandos:

curl -sI https://example.com/

O próprio site: CMS, plugins e temas

Os melhores cabeçalhos não ajudam se o software por trás do seu site tiver vulnerabilidades. A maioria dos sites de pequenas empresas que são comprometidos não o são através do servidor web, mas sim através de um plugin desatualizado, de um tema que há anos não é atualizado, ou de uma palavra-passe de administrador fraca.

  • Ative as atualizações automáticas do seu CMS (por exemplo, WordPress, Joomla ou outro sistema) e dos plugins sempre que possível.
  • Elimine plugins e temas que não utiliza; desativar não é suficiente, os ficheiros continuam lá.
  • Utilize para o início de sessão de administrador uma palavra-passe forte e única e a autenticação de dois fatores (módulo 2), e limite o número de tentativas de início de sessão.
  • Mantenha a versão do PHP (ou de outra linguagem) do seu pacote numa versão que ainda receba atualizações (lição 5.1).

Na prática: como se faz

No DirectAdmin, o painel utilizado pela WebOké, primeiro ativa Certificado SSL no seu domínio e depois Forçar o uso de SSL (https). No mesmo local, encontra um interrutor para o HSTS; ative-o apenas quando o certificado funcionar para todos os nomes. Noutros fornecedores, o funcionamento é semelhante, ou pode configurá-lo nas definições do seu CMS.

Se o seu site funcionar em Apache ou LiteSpeed, também pode colocar os cabeçalhos no ficheiro .htaccess:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Acrescente includeSubDomains apenas quando tiver a certeza de que todos os subdomínios têm https. Depois de cada alteração, verifique com o teste de sites do internet.nl ou com as ferramentas de programador do seu navegador.

Resumo

  • Um cadeado significa: encriptado e com o nome correto. Não significa: fiável.
  • Reencaminhe sempre http para https, primeiro no mesmo nome, e num único local.
  • O HSTS faz com que o navegador memorize que o seu site só funciona via https; o internet.nl considera adequado um max-age de pelo menos um ano (31536000). Ative-o apenas quando o https funcionar em todo o lado, e construa-o progressivamente.
  • X-Content-Type-Options: nosniff, frame-ancestors (ou X-Frame-Options) e Referrer-Policy são simples; uma Content-Security-Policy completa é personalizada.
  • As atualizações do seu CMS, plugins e temas são, no mínimo, tão importantes como os cabeçalhos.

Questionário

1. O que impede exatamente o HSTS?



2. Ativou Strict-Transport-Security: max-age=31536000; includeSubDomains. Uma semana depois, o certificado de shop.example.com expira. O que notam os visitantes habituais?



3. Que max-age mínimo considera o internet.nl suficiente para o HSTS?



4. Contra o que protege Content-Security-Policy: frame-ancestors 'self'?



5. Vê um cadeado em mijnbank-veilig.example na barra de endereço. O que sabe com certeza por causa disso?



Exercício

Exercício A4.2: Verificar o https, o HSTS e os cabeçalhos do seu site. Introduza o nome de domínio do seu site (se não tiver nenhum, utilize internet.nl). O programa abre o http:// e o https:// do seu domínio e verifica o certificado, o reencaminhamento para https, o HSTS e os cabeçalhos de segurança. Recebe, para cada ponto, verde, laranja ou vermelho com uma explicação.

Exercício A4.2: Verificar o https, o HSTS e os cabeçalhos do seu site

Introduza o nome de domínio do seu site (se não tiver nenhum, utilize internet.nl). O programa abre o http:// e o https:// do seu domínio e verifica o certificado, o redirecionamento para https, o HSTS e os cabeçalhos de segurança. Depois, indique o max-age do HSTS.



O que preenche e o que encontramos não ficam guardados. O seu navegador memoriza as suas respostas e se concluiu o exercício com sucesso. Se tiver sessão iniciada, guardamos apenas que concluiu o exercício (quase) com sucesso em Os meus cursos; aí também o pode eliminar.

Exercício D4.2: Atualizar e organizar o seu site. Inicie sessão na gestão do seu site, verifique a versão do seu CMS, plugins e temas, elimine o que não utiliza e ative as atualizações automáticas sempre que possível. Assinale a lista de verificação e responda à pergunta de reflexão.

Exercício D4.2: Atualizar e organizar o seu site

Como fazer: (1) Inicie sessão na gestão do seu site (ou peça ao seu criador de sites para fazer isto consigo). (2) Anote a versão do seu CMS e verifique se há atualizações disponíveis. (3) Faça uma cópia de segurança (lição 6.1), instale as atualizações do CMS, plugins e temas. (4) Remova os plugins e temas que não utiliza. (5) Ative as atualizações automáticas sempre que possível. (6) Verifique que contas de administrador existem e remova as contas de pessoas que já não trabalham consigo. (7) Ative a autenticação de dois fatores (2FA) para cada conta de administrador.




As suas marcações e notas ficam apenas neste navegador; não as enviamos para lado nenhum. Se tiver sessão iniciada, guardamos em Os meus cursos apenas que concluiu o exercício.

Para saber mais

Os passos nos artigos da WebOké aplicam-se ao ambiente da WebOké; noutros fornecedores, o funcionamento é semelhante.

Um momento…

Configurar os seus domínios

Para cada domínio, defina os servidores de nomes, a ligação ao seu alojamento e quem fica como titular.

A carregar os seus domínios…