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

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

Немного предыстории и деталей:

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

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

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

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

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

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

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

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

3 ответа

Решение

В последних версиях 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.

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

В Windows:

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

На Mac:

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

В последних нескольких версиях Safari (версия 13 на момент публикации) вы можете перейти в «Настройки» > «Конфиденциальность» > «Управление данными веб-сайта»… а затем удалить все данные по доменам.

Другие вопросы по тегам