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

11

Кажется, 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», чтобы закрыть диалоговое окно с предупреждением.

Арьян
источник

Ответы:

5

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

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

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

В Windows:

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

На Mac:

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

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

Диспетчер данных веб-сайта Safari 13, показывающий Superuser.com

CyberSkull
источник
Действительно, это было исправлено в октябре 2011 года :-) Обратите внимание, что веб-сайты не ограничивают отслеживание своим основным доменом: при просмотре Super User вы также получите отслеживание от Google, которое, вероятно, не будет очищено процедурой на скриншоте. (Кроме того, когда конфиденциальность действительно важна, лучше использовать приватные окна просмотра вместе с Tor и, возможно, даже другого пользователя, и обновлять браузер. Люди всегда находят новые способы отслеживания посетителей, и браузеры будут иметь недостатки в дизайне. ака ошибки .)
Арджан