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

Решения

Клиентские сайты на поддержке

У вас на руках входы в кабинеты двух-трёх десятков магазинов, которые принадлежат другим людям. Эта страница про то, как развести эти сессии: кабинет на профиль, вход и его второй шаг рядом, свой адрес выхода на каждого заказчика и доступ, который отдают и забирают обратно.
120 в день
Потолок страниц в торговле, доходит до него на седьмой день
2
Смен аккаунта за день
Логин, пароль, страница, заметка
Лежит на самом профиле
На этой машине, без сети
Где считается второй шаг
Одна машина или перехват
Профиль открывается, когда вы в аккаунте

Двадцать кабинетов в одном браузере

Украденным кабинетным куки не нужен пароль, чтобы добраться до настроек оплаты. Двадцать кабинетов заказчиков это двадцать входов, и один браузер со всеми ними означает, что одна кража достаёт до всех.

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

Свой профиль каждому сайту заказчика

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

Между двумя такими папками ничего не переходит, потому что движок про соседнюю не знает. Отсюда скучное правило: один заказчик, один профиль, даже когда два сайта стоят на одном хостинге.

Что разводитсяВ своём профилеВ общем браузере
Кабинетные кукиСессия одного магазинаОдна кража достаёт все кабинеты
Сохранённый входРядом с профилем, который им пользуетсяТаблица, которую уже открывали трое
Ключ второго шагаВ профиле, который входитТелефон с полусотней одинаковых строк
Адрес выходаСвоя страна на заказчикаНовая страна в журнале расширения каждое утро

Вход и его второй шаг

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

Пароль закрывает сама система только на Windows: на macOS ключ лежит внутри самой программы, а на Linux он записан как набран. На наш сервер он не уходит.

  • Логин и пароль

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

  • Страница входа

    Адрес того самого кабинета, сохранённый заметкой, а не ярлыком, который его открывает.

  • Второй шаг

    Ключ выдаёт шесть цифр на этой машине, без обращения в сеть и без телефона.

  • Таблица, которая у вас уже есть

    Импорт из таблицы узнаёт столбец ключей по имени, по-русски и по-английски.

Одна страна каждый понедельник

Защитное расширение на сайте видит, откуда вошёл управляющий, и адрес, которого сайт ещё не видел, стоит вам лишней проверки или запрета входа.

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

Адрес вы приносите свой

Прокси мы не продаём. Экран «Поставщики прокси» внутри программы это справочник поставщиков, а «Запросить доступ» там это записанная просьба.

Темп работы в чужом кабинете

Правка товаров через кабинет со скоростью машины читается как захваченный вход, а не как занятый вебмастер. Расширение не спрашивает, кто вы, прежде чем запереть кабинет на час.

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

ДействиеВ день
Новые товары10
Правки товаров40
Ответы покупателям30
Смены аккаунта2

Передача сайта коллеге

Вы делитесь профилем, а не паролем: пункт «Открыть доступ команде» в меню профиля. У коллеги он появляется в списке с пометкой «вам открыли», и настройки с отпечатком, каким его собрала программа, едут вместе с ним.

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

  • Одно окно на профиль, перехват по согласию

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

  • Отказ называет держателя

    Второй машине говорят, какая машина держит профиль и с какого времени.

  • Журнал переживает уход

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

Ваш собственный присмотр тоже перекрыт

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

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

  • Отчёты о падениях

    sentry.io и bugsnag.com

  • Скорость

    newrelic.com

  • Запись сеансов

    logrocket.com, hotjar.com, fullstory.com и mouseflow.com

Чего это не делает

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

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

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

Каждый профиль это браузер со своим разделом сессии
apps/desktop/src/lib/profiles.js (partitionFor)
Пара входа остаётся здесь, а замок на разных системах разный
apps/desktop/src/lib/profiles.js · apps/desktop/test/login-in-keychain.js · apps/desktop/test/шифрование-правда-по-системам.js
Коды сходятся с опубликованными образцами и сети не требуют
apps/desktop/src/lib/totp.js · apps/desktop/test/totp.js
Одно окно на профиль, с названным держателем и истекающим замком
apps/server/src/profiles/profiles.service.ts · apps/server/test/profile-lock.js
Потолки для работы в кабинете
packages/shared/src/index.js (SCENARIOS.shopping)
Общий список грузится в каждом сценарии и на обоих движках
packages/shared/src/index.js (SCENARIOS) · apps/desktop/src/main/main.js

Вопросы

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

Откройте профиль одному сайту заказчика

Бесплатный тариф даёт два профиля, без срока и без карты. Начните с того кабинета, который открываете чаще всего.