Как устроен поток данных

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

Непривычное здесь одно: таблица, которую вы анализируете, не отправляется на наши серверы. Расчёт выполняется в вашем браузере. Это не обещание нашей дисциплины и не настройка, которую можно тихо изменить, — так сделан сам продукт, и ниже описано, как это проверить самостоятельно.

Страница не заменяет Политику конфиденциальности, Политику файлов cookie и Условия использования — она описывает техническую сторону того же самого. Если тексты когда-нибудь разойдутся, правовую силу имеют правовые документы, а расхождение мы считаем дефектом и исправляем.

Как выполняется анализ

Движок анализа написан на Rust и скомпилирован в WebAssembly. Когда вы открываете страницу анализа, браузер загружает с нашего сервера сам модуль — так же, как загружает картинки и скрипты страницы. Дальше работает только ваше устройство:

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

Файл не загружается на сервер ни целиком, ни частями, ни в промежуточном виде. Десятки тысяч строк обрабатываются примерно за три секунды — вычислять их негде, кроме как у вас, и это заметно по тому, что скорость зависит от вашей машины, а не от нашей нагрузки.

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

Как проверить, не поверив нам на слово. Откройте инструменты разработчика браузера, вкладку «Сеть», и выполните анализ. Между выбором файла и появлением отчёта не будет ни одного запроса, который отправляет данные: ни к нашему домену, ни к какому-либо другому. Проверка занимает минуту и не требует доступа к нашему коду.

Что уходит на наши серверы

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

Аккаунт и вход. Регистрация, вход и выход, продление сессии, восстановление и смена пароля, повторная отправка письма с подтверждением, вход через Google. Передаются адрес электронной почты, пароль (на сервере хранится только его хеш), имя пользователя и язык интерфейса.

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

Сообщение через форму связи. Только если вы ею воспользуетесь: имя, адрес почты, тема, текст сообщения, язык интерфейса и страница отправки.

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

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

Что не уходит никогда

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

Из этого следует то, ради чего вы, скорее всего, читаете эту страницу: мы не знаем, что вы анализировали, и не знаем даже, запускали ли вы анализ. У нас нет метрики «сколько раз выполнен расчёт» — её невозможно собрать, не отправив нам данные, а мы их не получаем. По той же причине правила возврата денег не зависят от того, пользовались ли вы услугой: проверить это нам нечем.

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

Что остаётся в вашем браузере

  • cb_access_token — токен, который открывает движку полный режим работы. Хранится в локальном хранилище, действует не более двух часов и никогда дольше оплаченного периода.
  • cb_cms_jwt — файл cookie вашей сессии на сайте. Помечен httpOnly, то есть недоступен скриптам страницы, и живёт до семи дней.
  • Записи вашего ответа на баннер cookie — включая ответ «нет».
  • Сам файл — только в оперативной памяти страницы, пока она открыта. Он не записывается ни в локальное хранилище, ни в базу данных браузера, ни во временные файлы приложения и исчезает вместе с вкладкой.

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

Кто ещё участвует

Наши субобработчики и то, для чего каждый нужен:

  • хостинг-провайдер — на его инфраструктуре работают сайт и база данных с аккаунтами и покупками;
  • платёжный провайдер (Stripe) — приём платежей, подписки, возвраты, счета; оплата проходит на его страницах;
  • почтовый релей — подтверждения адреса, ссылки на смену пароля, уведомления о покупках и ответы на обращения;
  • Google — вход через Google, если вы им пользуетесь, и аналитика посещений.

Никто из них не получает файла, строк или результатов анализа: этих данных нет ни у нас, ни, следовательно, у наших подрядчиков.

Про аналитику — прямо

На всех страницах сайта, включая страницу анализа, загружается тег Google Analytics. Мы говорим это здесь прямо, потому что вы увидите его сами в первую же минуту проверки, а умолчание об очевидном обесценило бы всё остальное на этой странице.

Что он делает и чего не делает:

  • он считает просмотры страниц: какой адрес открыт, откуда пришёл посетитель, какой язык и тип устройства;
  • пока вы не ответили на баннер cookie, тег работает в состоянии «отказано»: он загружен, но событий не отправляет и своих файлов cookie не создаёт;
  • он не получает ваш файл, строки, результаты и рекомендации. Их нет в документе страницы в виде, доступном постороннему скрипту, и тег их не читает;
  • он не используется для рекламы и профилирования.

Если в вашей организации сторонний скрипт на странице обработки данных недопустим сам по себе — напишите нам. Это разумное требование, и оно решается настройкой среды, а не спором о том, что именно тег собирает.

Чего на страницах нет

  • Шрифты отдаются с нашего домена: они вшиты в сборку сайта, и запроса к сторонним шрифтовым сервисам браузер не делает.
  • Изображения приходят с нашего домена, даже когда их источник — наша система управления контентом: браузер к ней не обращается.
  • Движок анализа загружается с нашего домена и никуда не обращается сам.
  • Рекламных сетей, сторонних виджетов чата, счётчиков социальных сетей и сервисов записи действий пользователя на сайте нет.

Чего у нас нет

Мы предпочитаем сказать это сами, а не оставить вас искать.

  • У нас нет сертификата ISO/IEC 27001 и отчёта SOC 2.
  • У нас нет отчёта о независимом тестировании на проникновение.
  • У нас нет круглосуточной службы реагирования на инциденты и формального сертифицированного процесса управления уязвимостями.
  • Мы не назначали инспектора по защите данных: масштаб обработки этого не требует.

Мы небольшой поставщик, и перечисленное честно отражает наш размер. Существенно здесь другое: сертификат подтверждает, что организация хорошо охраняет полученные данные. Данные вашего анализа мы не получаем — охранять на нашей стороне нечего. Риск, который снимает сертификация, в этой части устранён иначе: не процедурой, а тем, что данных нет.

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

Редакция и адресные документы

Дата действующей редакции указана в начале страницы. Мы обязуемся обновлять этот текст той же выкаткой, которой меняется что-либо из описанного: любое новое обращение к серверу, любой новый сторонний скрипт на странице анализа. Устаревшее описание здесь — не неточность в маркетинге, а неверное утверждение, сделанное проверяющему.

Если для внутреннего решения нужны документы под ваш случай — заполненная анкета безопасности, раздел для оценки воздействия на защиту данных (DPIA), приложение к договору, — напишите на checkbusiness.pl@gmail.com. Такие документы мы готовим адресно.