Безопасность и доступ
Данные вашей компании — в отдельной базе
Не общая таблица с колонкой «чья запись», а собственная база на каждую организацию. Чужие коды в неё не попадают, а ваши не попадают к соседу — даже если в запросе будет ошибка.
Что сделано
Девять свойств, названных так, чтобы их можно было проверить — своей службой безопасности или вопросом нам.
Отдельная база на каждую организацию
Данные разных компаний не лежат в общей таблице: у каждой организации свой файл базы. Дотянуться до чужих кодов нельзя даже по ошибке — в открытой базе их просто нет.
Пароли — scrypt, а не хэш общего назначения
Хранится scrypt с параметрами N=16384, r=8, p=1 и 64-байтным ключом; сравнение постоянного времени. Пароль в открытом виде не хранится и не логируется нигде.
Сессия — cookie httpOnly
Флаги httpOnly и SameSite=Lax, признак secure следует настоящей схеме запроса, срок 30 дней. Ограничение частоты попыток входа — на адрес и на логин.
Код маркировки не попадает в журнал веб-сервера
Поиск кода — POST, а не GET, именно поэтому. Адресная строка не несёт ни кода, ни серийного номера.
Журнал действий, который нельзя обойти
Ни одно изменение не проходит мимо журнала: строка в нём появляется вместе с самой операцией. Журнал виден всем ролям, включая Наблюдателя, и выгружается в CSV.
Доступ поддержки — только чтение и всегда в журнале
Сотрудник платформы не имеет прав внутри организации. Единственный путь к данным — открыть файл в режиме наблюдения: соединение открывается только для чтения, причина обязательна, а запись в журнал платформы делается ДО того, как данные будут прочитаны.
Резервная копия — одной кнопкой, в любой момент
Одна кнопка — и у вас на диске вся база организации целиком. Плюс выгрузка каждого раздела в CSV: коды, справочник артикулов, журнал, партия исходным файлом. Забрать данные можно всегда, в том числе когда подписка не оплачена.
Второй фактор — по желанию каждого сотрудника
Код из приложения-аутентификатора (TOTP, RFC 6238) поверх пароля и десять одноразовых резервных кодов на случай потерянного телефона. Секрет хранится зашифрованным — в резервной копии базы он нечитаем. Включает и выключает второй фактор сам сотрудник: потребовать его со всей организации нельзя.
Данные не удаляются никогда
Неоплата переводит организацию в режим «только чтение»: коды, партии, выгрузки и журнал остаются на месте, их видно и можно скачать. Ни один код не прячется и не удаляется ни при каком состоянии подписки.
Четыре роли, выстроенные по возрастанию
Не матрица галочек, а четыре ступени: выше ступень — строго больше прав. «Смотреть коды» и «выгружать коды файлом» — разные права, поэтому наблюдатель не может унести вашу базу.
| Роль | Что может |
|---|---|
| Владелец | Всё, что может администратор, плюс тариф, оплата и передача организации |
| Администратор | Управляет пользователями, токенами и базой, откатывает партии |
| Оператор | Загрузка, выгрузка, поиск и списание кодов |
| Наблюдатель | Только просмотр: остатки, коды, партии, выгрузки и журнал. Журнал содержит действия всех сотрудников. Выгрузка файлов недоступна |
Как поддержка смотрит ваши данные
Единственный путь от учётной записи вендора к вашему складу — режим наблюдения. У него три свойства, и они не настройка, а устройство.
- Запись в журнал делается до чтенияСтрока о том, что сотрудник платформы открыл вашу базу, появляется раньше, чем он увидит первый код, — и остаётся, даже если запрос прервётся.
- Соединение открыто только на чтениеОтказ на любую запись приходит от самой базы, а не от галочки в интерфейсе: изменить ваши данные в этом режиме нельзя.
- Прав на запись нет вообщеНе «отключены на время», а не предусмотрены: режима, в котором поддержка правит данные организации, в продукте нет.
Причина обращения обязательна
Чего нет
Если что-то из этого требуется вашей службе безопасности, лучше узнать сейчас.
- Нет единого входа (SSO): вход через Яндекс ID и VK ID есть, но привязать организацию к корпоративному каталогу нельзя
- Нет внешнего аудита безопасности и сертификации: ни ISO 27001, ни аттестации по 152-ФЗ
- Нет шифрования базы на диске: файл организации защищён правами файловой системы и доступом к серверу
- Нет резервного копирования по расписанию: копия снимается кнопкой или скриптом на стороне оператора
- Нет журнала доступа на уровне записей: журнал фиксирует действия, а не факты просмотра
Отдельно про хранение: файлы организаций лежат на оборудовании вендора в России — не в облаке и не в дата-центре стороннего провайдера, — и доступ к ним имеет тот же человек, который выпускает обновления. Публичный вход арендован у Timeweb в Москве: через него проходит трафик и на нём завершается TLS, поэтому запрос виден его оборудованию в момент обращения. Обе площадки названы в политике обработки данных.