Evitar envenenamento de cache
Este tópico discute como evitar o envenenamento de cache se você usa o servidor Web do Microsoft Internet Information Server (IIS). Intoxicação de cache é um método de alterar o conteúdo do cache para incluir páginas diferentes do mesmo site. Por exemplo, é possível inserir uma página de erro HTTP 404 (Não encontrado) no lugar de alguma página benigna (por exemplo, a página inicial da vitrine), que pode levar a uma possível negação de serviço (DoS). As URLs de páginas mal-intencionadas são armazenadas em cache pelo Varnish ou Redis, daí o nome envenenamento de cache de página.
Esses tipos de ataques podem ser difíceis de detectar porque não resultam em erros nos logs do servidor da Web.
Essa solução se aplica às seguintes versões do Commerce:
- 2.0.10 e posterior
- 2.1.2 e posterior
Descrição
O problema ocorre se as regravações de URL estiverem ativadas no servidor IIS e qualquer um dos seguintes cabeçalhos HTTP for alterado antes que a solicitação chegue ao serviço de cache Vernish ou Redis:
X-Rewrite-Url
X-Original-Url
IIS-wasurlrewritten
Unencoded-URL
Orig-path-info
Se esses cabeçalhos forem alterados, o URL e o conteúdo resultantes serão armazenados em cache, resultando em possíveis vulnerabilidades.
Solução
Fornecemos a opção de remover os valores de todos os cabeçalhos anteriores com base na configuração do servidor IIS para Enable_IIS_Rewrites
.
- Se
Enable_IIS_Rewrites
estiver definido como0
, os valores dos cabeçalhos serão removidos. - Se
Enable_IIS_Rewrites
estiver definido como1
, os valores dos cabeçalhos serão deixados intactos.
Enable_IIS_Rewrites
como 1
, não deverá permitir que os valores dos cabeçalhos anteriores sejam alterados antes que a solicitação chegue ao servidor Web do IIS.