Перейти к содержимому

Сравнение

Где на самом деле живёт сессия

Куки и входы это то, что площадка читает первым, и каждое средство на этой странице обходится с ними по-своему. Восемь привычных способов поставлены здесь на одну ось: где держится сессия, что остаётся после закрытия окна и сколько отдельных наборов помещается на одной машине.

Что покрывает слово разделение

Хранилище это не одна вещь. Куки, локальные данные, базы страниц, служебные работники и кэш лежат в одном наборе, и записать туда может любая страница.

Значит, средство либо даёт аккаунту свой набор, либо не даёт. Вычистить набор потом это другая работа, а не та же самая.

  • Один набор на всё

    Любая вкладка браузера читает и пишет одно и то же.

  • Набор на время окна

    Живёт, пока открыто окно, и уходит вместе с ним.

  • Набор на аккаунт

    Остаётся на диске между запусками и принадлежит одному входу.

  • Набор на другом железе

    Его держат отдельно, потому что машина под ним другая.

Восемь способов на одной оси

По строкам способы, по колонкам вопросы этой оси. Пустая клетка значит, что вопрос к способу не относится, а не что ответ плохой.

Последняя строка наша. Каждая её клетка взята из дороги запуска в программе, а не из рекламного листа.

Где держится сессияОстаётся после закрытия окнаОтдельных наборов на машинеПереезд на другую машину
Обычный браузер как естьОдин набор на весь браузерДаОдинКопировать папку руками
Режим инкогнитоНабор на время окнаОдин за раз
Профили браузера или контейнерыНабор на профильДаСколько заведётеКопировать папку руками
Расширение с подменойВ браузере под нимДаОдин
VPNВ браузере, без измененийДаОдин
Виртуальная машина на аккаунтВнутри гостевой системыДаПо одному на машинуПеренести образ диска
Отдельное железо на аккаунтНа этом устройствеДаПо одному на устройствоВзять устройство с собой
Браузер с правкой движкаСвой каталог данных у профиляДаПо одному на профильШифрованный файл или общая папка

Что даёт свой каталог

Каждый профиль запускается в каталоге данных, названном его именем, поэтому его куки и хранилище не встречаются с чужими. Этот каталог и есть всё разделение.

Движок создаёт этот каталог закрытым от других людей на macOS и Linux и закрывает его заново при каждом запуске. На Windows правами распоряжаются списки доступа, которых программа не ставит, и такого замка мы там не обещаем.

  • Куки и входы

    Браузер пишет их в этот каталог и читает только оттуда.

  • Хранилище и базы

    Локальное хранилище, базы страниц и служебные работники лежат рядом.

  • Кэш

    Он тоже там, и при переезде сессии остаётся на месте.

  • Настройки самого браузера

    Файл настроек профиля лежит в этом же каталоге.

Чего свой каталог не закрывает

Профили это процессы в вашей же системе, и они делят её друг с другом и с вами. Всё, что работает под вашей учётной записью, эти каталоги прочитает.

Браузер держит свой ключ, а не берёт его у системы, потому что профиль обязан открыться и на той машине, куда вы его перевезли. На macOS и Linux настоящую работу тут делают права на каталог.

Когда сессия переезжает

Сессия едет либо одним шифрованным файлом, либо через папку, которую вы и так синхронизируете. И там и там настройки едут вместе с данными браузера, поэтому на второй машине аккаунт остаётся залогиненным.

Кэш не берётся нарочно, а с ним служебные работники и ещё несколько хранилищ сайта. Едет то, чем аккаунт остаётся залогиненным: куки, сохранённые входы и локальное хранилище.

  • Закрыто паролем

    Неверный пароль даёт честный отказ, а не испорченные данные.

  • Личность профиля едет с ним

    На втором компьютере тот же профиль описывает ту же машину.

  • Открытый профиль пропускается

    Копия живых баз дала бы сессию, которая не откроется.

  • Менялись обе стороны, значит вопрос

    С прошлой сверки работали две машины, и молча не затирается ни одна.

Что стирается при удалении

Удаление кладёт профиль в корзину, и данные браузера ждут там вместе с ним. Очистка корзины убирает сам каталог данных, а не только строку в списке.

Чего это сравнение не утверждает

  • Это не утверждает, что отдельное хранилище само по себе разводит аккаунты. Хранилище это один канал из трёх, а два других это показания устройства и адрес выхода.
  • Это не утверждает, что профиль отделён от вас. Профили идут под вашей же учётной записью, и всё остальное, что под ней работает, их каталоги прочитает.
  • Это не описывает ни один чужой продукт по имени. По строкам стоят виды подхода, а в клетках то, что подход умеет по своему устройству.
  • Это не утверждает, что удаление мгновенно. Удалённый профиль ждёт в корзине вместе с данными, и каталог убирает только очистка корзины.
  • Это не утверждает, что файл переноса берёт всё. Кэш и служебные работники не берутся нарочно, а профиль, открытый в этот момент, пропускается, а не копируется.
  • Это не утверждает, что о любой неудаче скажут на экране. Если копию в общей папке стереть не вышло, в окне об этом ни слова.

Как проверить

Каждая строка называет файл, который решает поведение, и стенд, который валит сборку, когда сказанное перестаёт быть правдой.

Каждый профиль запускается в своём каталоге данных, закрытом от других людей на macOS и Linux
apps/desktop/src/lib/forkEngine.js · apps/desktop/test/secrets-on-disk.js
Очистка корзины убирает этот каталог, а неудачное стирание на этом компьютере показывается
apps/desktop/src/main/main.js · apps/desktop/test/purge-honesty.js
Файл переноса везёт сессию, оставляет кэш на месте, а неверный пароль получает отказ
apps/desktop/src/lib/bundle.js · apps/desktop/test/profile-bundle.js
Сессия едет через обычную синхронизируемую папку, а спор двух машин отдаётся человеку
apps/desktop/src/lib/sessionSync.js · apps/desktop/test/session-sync-folder.js

Вопросы

Может ли один профиль прочитать куки другого?
Через браузер нет. Каждый профиль запускается в своём каталоге данных и чужого пути не получает, поэтому страница одного профиля до чужих данных не дотянется.
Меняет ли прокси что-нибудь в хранилище?
Нет. Адрес решает, откуда выходит трафик, и к записи на диск отношения не имеет, поэтому два этих вопроса разведены здесь по разным страницам.
Читается ли файл переноса без пароля?
Нет. Он закрыт ключом, растянутым из пароля, и неверный пароль кончается отказом, а не данными, похожими на правильные.
Лежит ли пароль в общей папке?
Нет. Пароль остаётся на машине, рядом с данными программы.
Почему не давать каждому аккаунту виртуальную машину?
Потому что стена толще, а счёт больше. Гостевая система стоит памяти, диска и загрузки до первого щелчка.

Что отдаёт ваш собственный браузер

Проверка отпечатка читает 12 значений в вашем браузере и никуда их не отправляет.