Сравнение
Где на самом деле живёт сессия
Что покрывает слово разделение
Хранилище это не одна вещь. Куки, локальные данные, базы страниц, служебные работники и кэш лежат в одном наборе, и записать туда может любая страница.
Значит, средство либо даёт аккаунту свой набор, либо не даёт. Вычистить набор потом это другая работа, а не та же самая.
Один набор на всё
Любая вкладка браузера читает и пишет одно и то же.
Набор на время окна
Живёт, пока открыто окно, и уходит вместе с ним.
Набор на аккаунт
Остаётся на диске между запусками и принадлежит одному входу.
Набор на другом железе
Его держат отдельно, потому что машина под ним другая.
Восемь способов на одной оси
По строкам способы, по колонкам вопросы этой оси. Пустая клетка значит, что вопрос к способу не относится, а не что ответ плохой.
Последняя строка наша. Каждая её клетка взята из дороги запуска в программе, а не из рекламного листа.
| Где держится сессия | Остаётся после закрытия окна | Отдельных наборов на машине | Переезд на другую машину | |
|---|---|---|---|---|
| Обычный браузер как есть | Один набор на весь браузер | Да | Один | Копировать папку руками |
| Режим инкогнито | Набор на время окна | – | Один за раз | |
| Профили браузера или контейнеры | Набор на профиль | Да | Сколько заведёте | Копировать папку руками |
| Расширение с подменой | В браузере под ним | Да | Один | |
| 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 значений в вашем браузере и никуда их не отправляет.