Как очистить все локальное хранилище HTML5 от Safari?

47713
Arjan

Кажется, stackauth.comон использовал локальное хранилище, которое Safari не показывает мне, и, следовательно, не может быть удалено. Итак, в целом: как обеспечить удаление всего локального хранилища из Safari?

Некоторые предыстория и детали:

HTML5 Local Storage позволяет веб - сайтам сохранять информацию на компьютере. (Это немного похоже на файлы cookie, но содержимое не отправляется на сервер автоматически.) Например, когда вы один раз вошли на (новый) веб-сайт Twitter, то при просмотре этого сайта и вставке следующего в строку адреса отображается много деталей, даже если в данный момент не вошли в систему :

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

Чтобы избавиться от этих данных: в Google Chrome «Удалить куки и другие данные сайта» делает свое дело. В Firefox он удаляется каждый раз, когда удаляются файлы cookie. Не так много в сафари.

В Safari, кажется, есть связанные предпочтения в Security, кнопка «Показать базы данных». Тем не менее, в этом списке «Показать базы данных» в Safari НЕ упоминается stackauth.com, который используется для автоматического входа в глобальную сеть Stack Exchange . И после использования «Удалить все» я все еще получаю результаты на этом сайте:

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

Я мог бы удалить это с помощью javascript:localStorage.clear();. Но тогда мне нужно знать, что на сайте хранятся данные. Этот вопрос касается не только StackAuth; Я хочу убедиться, что другие сайты также не скрыты от списка.

(Я на Mac, использую последнюю версию Safari на последней OS X.)

Когда всплывающее окно слишком большое, чтобы увидеть какую-либо кнопку закрытия, нажмите клавишу «Esc» или «Return», чтобы закрыть диалоговое окно с предупреждением.

10

2 ответа на вопрос

5
Arjan

В последних версиях Safari (сейчас я использую 5.1) локальное хранилище можно очистить с помощью Safari »Сбросить Safari» Удалить все данные веб-сайта. Или с помощью Safari »Параметры» вкладка Конфиденциальность »Файлы cookie и другие данные веб-сайта» Удалить все данные веб-сайта. И даже с помощью «Удалить все» при просмотре сведений на той же самой вкладке «Конфиденциальность». На вкладке «Безопасность» больше не отображаются кнопки для просмотра баз данных.

Еще некоторые детали, также для более старых версий:

На моем Mac я обнаружил папку ~/Library/Safari/LocalStorage, в которой есть файл для каждого сайта, использующего локальное хранилище , с датой его создания, установленной для моего самого первого посещения каждого сайта. В Windows это может быть в папке типа %APPDATA%\Apple\Safariили %APPDATA%\Apple Computer\Safari.

Удаление всех этих файлов и перезапуск Safari, очевидно, очистили данные и для StackAuth.

Однако при входе на случайный сайт Stack Exchange я снова получаю данные StackAuth и файл в указанной выше папке, и мне никогда не предлагалось разрешить это (в моих настройках Safari отображается « Хранилище базы данных: ни один не разрешен перед запросом »), и без домен отображается в списке «Показать базы данных». Это также происходит в приватных режимах просмотра.

По-видимому, это вызвано различием между веб-базами данных HTML5 и веб-хранилищем HTML5 (последнее включает локальное хранилище). Chrome показывает оба для Twitter:

Базы данных и локальное хранилище в Google Chrome

Видимо Safari предупреждает только о базах данных, а не о локальном хранилище? Может быть, заблокировать локальное хранилище будет так же сложно, как помешать Adobe Flash оставить свой след конфиденциальности. Характеристики состояние:

Пользовательские агенты должны истекать данные из локальных областей хранения только по соображениям безопасности или по запросу пользователя.

Будем надеяться, что кто-то знает о более простом пути или что мы получим больше контроля в будущих выпусках. (Я подал запрос на добавление функции в Apple для этого.)

В моем случае я обнаружил 5 904 элемента, относящихся к марту 2009 года. И даже мои собственные домены, для которых, я уверен, не используется локальное хранилище, были перечислены с файлами по 8 КБ каждый. Расследование показывает, что скрипт пользователя FlashBlock Алексея Рузанова также использует локальное хранилище и, следовательно, создает файл для каждого посещаемого сайта, независимо от того, использует ли он локальное хранилище, и независимо от того, использует ли он Flash.

Ах, я чуть не обманулся: явно нажимая «Не разрешать» при появлении запроса «Разрешить этому сайту использовать место на вашем диске?» - «http://twitter.com» запрашивает 1 МБ дискового пространства для хранения «Html5 test db» в качестве базы данных на вашем диске », * все же * получил данные при выполнении трюка JavaScript и файл 8 КБ на диске. Однако перезапуск Safari показывает, что эти данные не были сохранены (или, по крайней мере: недоступны). Arjan 13 лет назад 0
0
user1477388

Мое решение немного отличается:

В Windows:

  1. Удерживайте Ctrl + Alt + C.
  2. Введите следующий код в появившемся окне и нажмите клавишу Enter: localStorage.clear()

На Mac:

  1. Удерживайте Cmd + Opt + C.
  2. Введите следующий код в появившемся окне и нажмите клавишу Enter: localStorage.clear()