O Google está introduzindo uma mudança significativa no comportamento do Cache de Voltar/Avançar (BFCache) do Chrome, permitindo que páginas da web sejam armazenadas no cache, mesmo que um webmaster especifique para não armazenar uma página no cache do navegador.
"O bfcache é um cache em memória que armazena um instantâneo completo de uma página (incluindo o heap do JavaScript) enquanto o usuário está navegando para fora", explica o site web.dev do Google.
"Com a página inteira em memória, o navegador pode restaurá-la rapidamente e facilmente se o usuário decidir retornar".
Os administradores de sites podem especificar como suas páginas da web são armazenadas no cache de um navegador usando o cabeçalho "Controle de cache:".
Uma opção é usar o cabeçalho "Cache-control: no-store", que impede que a resposta do site seja armazenada no navegador.
No entanto, os navegadores não têm armazenado páginas da web no bfcache se usam esse cabeçalho, causando problemas de desempenho quando os usuários retornam a essas páginas usando os botões de voltar e avançar do navegador.
O Google propõe que as páginas da web devem ser armazenadas no BFCache mesmo quando o cabeçalho "Cache-control: no-store" está presente em páginas HTTPS.
Essa abordagem aumentaria os casos de navegação instantânea para frente e para trás, resultando em uma experiência melhor.
O engenheiro do Google, Fergal Daly, diz que o objetivo principal não é impedir a restauração de páginas contendo dados sensíveis.
Em vez disso, o foco é evitar a restauração de páginas com dados sensíveis aos quais o usuário não deveria mais ter acesso.
Se não houver alterações nos cookies, a suposição é que as solicitações HTTP do navegador, e assim as decisões de acesso, permaneçam consistentes.
O desafio está nas alterações do lado do servidor que resultam na perda de acesso.
Para sites que usam tecnologias como EventSource para refletir mudanças em páginas abertas, essas atualizações acionarão a remoção do BFCache ou entregarão eventos prontamente após a restauração.
Para sites sem mecanismos de atualização imediatos, existe o risco de os usuários acessarem dados desatualizados, que o comportamento proposto do BFCache pode potencialmente exacerbar.
O Google está trabalhando para resolver essas preocupações, lançando o recurso em canais de teste primeiro e obtendo dados suficientes para entender o impacto.
Alguns manifestaram preocupações de que essa mudança poderia quebrar promessas aos desenvolvedores da web que assumem que o cabeçalho "Cache-control: no-store" significa que o navegador não fará cache da página da web.
"Para mim, parece que estamos tocando em uma área delicada e não tenho certeza de como isso vai se desenrolar no mundo real", comentou o desenvolvedor do Opera, Daniel Bratell.
"Mesmo que o cache-control: no-store esteja sendo extremamente mal utilizado, e os números que você lista parecem indicar que esse é o caso, não houve uma promessa aos desenvolvedores da web de que esse recurso estará para sempre perdido depois que a página não for mais mostrada, e essa é uma promessa que pode ser quebrada de forma razoável?"
No entanto, Daly diz que esse cabeçalho só promete não armazenar uma página da web no cache regular do navegador, não no bfcache.
"Não há promessa explícita de que o CCNS impede o BFCaching.
O cabeçalho CCNS, ou em geral, todas as diretivas de controle de cache, são destinadas a controlar o cache HTTP, portanto a promessa explícita é sobre o cache HTTP", explicou Daly.
"O BFCache não faz parte do cache HTTP, e os desenvolvedores não devem interpretar o cabeçalho CCNS como uma promessa de que a página não será BFCached."
Ao redefinir como o BFCache interage com a diretiva "Cache-control: no-store", os desenvolvedores do Google Chrome esperam criar uma experiência de navegação mais responsiva sem comprometer a segurança e a privacidade do usuário.
Publicidade
Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...