Pular para o conteúdo principal
Versão: 2.x

HOST151: Reutilização de respostas entre usuários pelo cache

O que isso significa​

O cache da hospedagem pode entregar os dados da loja de uma pessoa a outra.

Nada neste dispositivo é perdido. Peça ao provedor de hospedagem que pare de armazenar a API da loja em cache (tanto os endereços /wp-json/ quanto os ?rest_route=). Se o WCPOS não se conectou, reconecte depois.

Uma camada de cache está entregando respostas armazenadas da API REST sem verificar quem as solicita: o aplicativo enviou duas solicitações de teste com autenticações diferentes e recebeu a resposta da primeira nas duas vezes. Em uma loja em operação, isso significa que um caixa poderia ver os dados de outro. Esse é um problema na camada de hospedagem — o próprio WordPress sempre responde de acordo com o usuário.

Quando isso acontece, o aplicativo tenta novamente com uma chave de cache exclusiva em cada solicitação. Se isso comprovar que a chave contorna o cache, o WCPOS se conecta e continua enviando a chave — nesse caso, este registro é um aviso de que o cache ainda precisa ser corrigido. Se não for possível comprovar que a conexão é segura, o WCPOS não se conecta até que o cache seja corrigido.

Seus dados​

Nada neste dispositivo é perdido. Se o WCPOS não conseguiu comprovar que a conexão é segura, ele não se conecta para evitar o risco de mostrar os dados de uma pessoa a outra; tudo que já está neste dispositivo permanece nele e é enviado quando a conexão é estabelecida.

Como resolver​

Para o provedor de hospedagem ou administrador do site — o cache precisa ser corrigido na hospedagem, mesmo que o WCPOS tenha conseguido se conectar contornando o problema:

  1. Exclua os caminhos da API REST da loja (/wp-json/ e /?rest_route=) do cache de páginas — no LiteSpeed, desative o cache REST ou adicione uma regra para não armazenar em cache; no WP Engine, estenda a exclusão do WooCommerce a /wp-json/wcpos e ao formato ?rest_route=; no Sucuri, configure o nível de cache para respeitar Cache-Control.
  2. A API da loja já envia Cache-Control: no-store e Vary: Authorization — a camada de cache está ignorando esses cabeçalhos; mostre-os ao provedor de hospedagem.
  3. Depois de alterar as configurações de cache, limpe o cache. Se o WCPOS não se conectou, reconecte.

Detalhes​

Código
HOST151 (CACHE_SHARED_REPLAY)
Gravidade
error
Introduzido em
WCPOS 1.10.0