Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумБраузеры и профили

Сохранение сессий между запусками

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
1 января, 08:12первое сообщение

Каждое утро захожу в четыре кабинета заново. Пароли подставляются, вход всё равно спрашивают, а в двух местах ещё и код с почты.

Браузер закрываю крестиком, ничего не удаляю, профили лежат отдельными каталогами и никуда не переезжают. Куда смотреть?

grepwalker
grepwalker
Знаток
сообщений 1330
с мая
8 июня, 11:29#2

Сначала надо развести два случая: кука пропала или сервис перестал ей верить. Симптомы одинаковые, лечится по-разному.

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

Второй случай никакими файлами не поймать: кука на месте, сервис её видит и гасит, потому что рядом с ней что-то поменялось. Адрес выхода, часовой пояс, версия браузера после ночного обновления.

Начните с файла, там две минуты работы.

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
15 ноября, 14:46#3
grepwalker: Начните с файла

А чем его открыть? Там же не текст.

Костя Фомин
Костя Фомин
Знаток
сообщений 1600
с апр
22 апреля, 17:03#4

Обычным sqlite3, файл лежит в каталоге профиля.

sqlite3 "/home/a/profili/kab1/Default/Cookies" \
  "select host_key, name, expires_utc from cookies where host_key like '%kabinet%';"

Ноль в третьем столбце значит сессионная кука. Такая уйдёт при закрытии браузера, и со своей стороны тут ничего не поправить: сайт сам её так выдал.

Браузер при этом надо закрывать через меню. Снимете процесс силой, дозапись в файл может не дойти, и потеряются даже постоянные куки за последний сеанс.

skript_kid
skript_kid
Новичок
сообщений 54
с сен, второй сезон
1 сентября, 08:20#5

а если через диспетчер задач снять, куки успевают дописаться?

grepwalker
grepwalker
Знаток
сообщений 1330
с мая
8 февраля, 11:37#6

skript_kid, как повезёт. Хранилище пишется с журналом, часть записей лежит в нём и переезжает в основной файл при аккуратном закрытии. Сняли процесс силой, журнал остался лежать сбоку, и подхватится он через раз.

Влад Терентьев
Влад Терентьев
Участник
сообщений 745
с авг
15 июля, 14:54#7

Добавлю про второй случай, у Алины скорее он и есть, раз код с почты просят.

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

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

Проверяется просто. Пишите в файлик две строки перед закрытием и две после старта: адрес выхода и версию браузера. Утро, когда попросят код, сразу подсветит, что съехало.

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
22 декабря, 17:11#8

Посмотрела файл: в двух кабинетах срок стоит, в двух ноль. И да, адрес у меня раздаёт скрипт при старте, строку берёт первую из списка.

cronjob
cronjob
Новичок
сообщений 205
с фев, второй сезон
1 мая, 08:28#9

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

Костя Фомин
Костя Фомин
Знаток
сообщений 1600
с апр
8 октября, 11:45#10

У Firefox то же самое лежит в cookies.sqlite, а открытые вкладки отдельно, в папке sessionstore-backups внутри профиля. Там же настройка browser.sessionstore.interval, по умолчанию запись идёт нечасто.

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
15 марта, 14:02#11

Скрипт переписала, у каждого каталога своя строка. Три утра подряд без кода с почты, два кабинета из четырёх открываются сразу.

Оставшиеся два так и просят вход, там сессионная кука, с этим ничего не поделать. Спасибо, теперь хотя бы понятно, где что искать.