Como limpar todo o armazenamento local em HTML5 do Safari?

11

Parece stackauth.comter usado algum armazenamento local que meu Safari não me mostra e, portanto, não pode ser excluído. Então, em geral: como garantir que todo o armazenamento local seja excluído do Safari?

Alguns antecedentes e detalhes:

O armazenamento local HTML5 permite que os sites armazenem informações em um computador. (É um pouco parecido com os cookies, mas o conteúdo não é enviado para o servidor automaticamente.) Como quando alguém se loga no (novo) site do Twitter, ao visualizar o site e colar o seguinte na barra de localização, é mostrado de detalhes, mesmo quando não estiver conectado no momento :

javascript:alert(localStorage.getItem(':USER:'));

Para se livrar desses dados: no Google Chrome, "Excluir cookies e outros dados do site" faz o truque. No Firefox, ele é excluído sempre que os cookies são excluídos. Não tanto no Safari.

No Safari, parece haver uma preferência relacionada em Segurança, botão "Mostrar bancos de dados". No entanto: a lista de "Mostrar bancos de dados" no Safari NÃO menciona o stackauth.com , conforme usado pelo logon automático da rede global do Stack Exchange . E depois de usar "Remover tudo", ainda recebo resultados nesse site:

javascript:alert(localStorage.getItem('GlobalLogin'));

Eu poderia excluir isso usando javascript:localStorage.clear();. Mas então eu preciso saber que um site armazenou dados. Esta questão não é apenas sobre StackAuth; Quero ter certeza de que outros sites também não estão ocultos da lista.

(Estou em um Mac, usando o Safari mais recente no OS X mais recente.)

Quando o pop-up for muito grande para ver qualquer botão Fechar, pressione Esc ou Return para fechar a caixa de diálogo de alerta.

Arjan
fonte

Respostas:

5

Nas versões recentes do Safari (agora estou no 5.1), o armazenamento local pode ser limpo com o Safari »Redefinir o Safari» Remova todos os dados do site. Ou usando o Safari »Preferências» tabsheet Privacidade »Cookies e outros dados do site» Remover todos os dados do site. E mesmo usando Remover tudo ao exibir os detalhes na mesma guia de privacidade. A guia Segurança não mostra mais nenhum botão para visualizar os bancos de dados.

Mais alguns detalhes, também para versões mais antigas:

No meu Mac, encontrei a pasta ~/Library/Safari/LocalStorage, que possui um arquivo para cada site que usa armazenamento local , com a data de criação definida para a minha primeira visita a cada site. No Windows, isso pode estar em uma pasta como %APPDATA%\Apple\Safariou %APPDATA%\Apple Computer\Safari.

A exclusão de todos esses arquivos e a reinicialização do Safari obviamente também limparam os dados do StackAuth.

No entanto, fazer login em um site aleatório do Stack Exchange recebe os dados StackAuth novamente e um arquivo na pasta acima, sem nunca ser solicitado a permitir isso (minhas preferências do Safari mostram " Armazenamento do banco de dados: nenhum permitido antes de perguntar ") e sem o domínio sendo mostrado na lista "Mostrar bancos de dados". Isso também acontece nos modos de navegação privada.

Isso parece ser causado pela diferença entre os bancos de dados da Web HTML5 e o armazenamento na Web HTML5 (este último, incluindo armazenamento local). O Chrome mostra os dois para o Twitter:

Bancos de dados e armazenamento local no Google Chrome

Aparentemente, o Safari apenas alerta para bancos de dados, não para armazenamento local? Talvez bloquear o armazenamento local seja tão difícil quanto impedir que o Adobe Flash deixe sua trilha de privacidade. As especificações declaram:

Os agentes do usuário devem expirar os dados das áreas de armazenamento local apenas por motivos de segurança ou quando solicitados pelo usuário.

Vamos torcer para que alguém saiba de uma maneira mais fácil ou que tenhamos mais controle em versões futuras. (Eu solicitei um recurso na Apple para isso.)

No meu caso, encontrei 5.904 itens desde março de 2009. E até meus próprios domínios, para os quais tenho certeza de que nenhum armazenamento local é usado, foram listados com arquivos de 8kb cada. A investigação mostra que o script do usuário FlashBlock de Alexey Ruzanov também usa armazenamento local e, portanto, causa um arquivo para cada site visitado, independentemente de usar armazenamento local e independentemente de usar Flash.

Arjan
fonte
Ah, eu quase fui enganado aqui: clicar explicitamente em "Não permitir" quando solicitado "Permitir que este site use espaço em seu disco? - O site" twitter.com "está solicitando 1 MB de espaço em disco para armazenar" html5 test db ”Como um banco de dados no seu disco", ainda recebi os dados ao executar o truque JavaScript e um arquivo de 8kb no disco. No entanto, reiniciar o Safari mostra que esses dados não foram armazenados (ou pelo menos: não estão acessíveis).
Arjan
1

Minha solução é um pouco diferente:

No Windows:

  1. Mantenha pressionadas as teclas Ctrl + Alt + C.
  2. Digite o seguinte código na janela exibida e clique na tecla Enter: localStorage.clear()

No Mac:

  1. Segure Cmd + Opt + C.
  2. Digite o seguinte código na janela exibida e clique na tecla Enter: localStorage.clear()
user1477388
fonte