Приватность и безопасность
Как ActionPulse обращается с ключами и персональными данными: разделение браузерного токена и серверного ключа, обрезка на приёме, исключение элементов из сбора, маскирование в записях сессий и сроки хранения.
На этой странице
- Два ключа и граница доверия
- Разрешённые домены
- Что отправлять с сервера
- Согласие
- Что происходит с данными на приёме
- IP-адрес
- User-Agent
- Секреты в свойствах и адресах
- Персональные данные
- Исключение элементов страницы из сбора
- Формы
- Записи сессий
- Политика безопасности контента
- Хранение и удаление
- Что мы здесь не утверждаем
Два ключа и граница доверия
| Браузерный токен | Серверный ключ | |
|---|---|---|
| Префикс | pp_bt_… |
pp_sk_… |
| Модель | Публичный идентификатор проекта | Секрет |
| Кто видит | Любой посетитель сайта | Только ваш бэкенд |
| Ограничение по домену | Только перечисленные origin | Нет |
| Срок действия | 90 дней по умолчанию | Без срока, если не задан |
| Доверие к событиям | Событие ничего не подтверждает | Событие достоверно |
Полное значение ключа показывается один раз при выпуске и не восстанавливается. Перенесите его в менеджер секретов сразу.
Права определяются типом ключа, а не тем, что заявил вызывающий. Служебные заголовки о версии SDK и источнике события — диагностика, а не доказательство.
Разрешённые домены
Браузерный токен принимается только с точно перечисленных origin: схема, хост и порт, без масок и путей. Токен без списка origin не работает вовсе. Проверка выполняется на каждом запросе.
Список задаётся в момент выпуска токена и не редактируется. Чтобы его изменить, выпускают новый токен.
Что отправлять с сервера
Всё, чему нужно доверять: подтверждённые оплаты, заказы, возвраты, регистрации, старт и конверсия подписки, выдача доступа. Часть этих имён и технически принимается только с серверным ключом — см. события и пользователей.
Согласие
При data-consent="required" до явного решения посетителя трекер не создаёт
идентификаторов, не пишет в хранилище браузера и не отправляет запросов. Полное
поведение — в руководстве по согласию.
Что происходит с данными на приёме
IP-адрес
IP используется только для определения страны и не сохраняется вместе с событием. В хранилище попадает код страны, а не адрес.
User-Agent
Строка User-Agent разбирается на три поля — тип устройства, операционная система и браузер. Исходная строка не сохраняется.
Секреты в свойствах и адресах
Из свойств событий, из url и из referrer всегда вырезаются распознанные
секреты: учётные данные в самом адресе, параметры с «секретными» именами
(токены, ключи, пароли) и значения, похожие на ключи ActionPulse. Этот слой
работает всегда и от настроек проекта не зависит.
Из адреса вырезается только совпавший фрагмент: схема, домен, путь и UTM-метки сохраняются, иначе аналитика по источникам перестала бы работать.
Персональные данные
Значения свойств проверяются тремя шаблонами: адрес электронной почты,
российский номер телефона и российский паспорт. Совпавшее значение целиком
заменяется на [redacted].
Дополнительно свойство можно пометить в реестре событий как «возможные PII» — тогда оно проходит ту же проверку принудительно — или как «запрещённое», и тогда оно удаляется из сохранённого события.
Исключение элементов страницы из сбора
Два атрибута с разной областью действия:
| Атрибут | Что исключает |
|---|---|
data-pp-ignore |
элемент и его содержимое из автосбора: клики, наведения, разделы, поля и отправка форм |
data-pp-block |
то же самое и дополнительно скрывает элемент в записях сессий |
<section data-pp-block>
<h2>Данные банковской карты</h2>
<!-- Не попадёт ни в автосбор, ни в запись сессии -->
</section>
Исключение задаётся только атрибутами. Соглашения по именам CSS-классов не
существует — класс pp-no-capture или подобный ничего не даст.
Есть и обратные, «положительные» атрибуты: data-pp-id, data-pp-track и
data-pp-section помогают строить устойчивые селекторы элементов. Они не
исключают элемент, а наоборот, делают его узнаваемым в отчётах.
Формы
Автосбор форм никогда не записывает значения полей. В события попадают только селектор формы, имя и тип поля, действие, время в поле и признак заполненности. Свойства с содержимым поля запрещены на уровне платформы и удаляются, даже если их попытаться отправить.
Записи сессий
Записи выключены по умолчанию и включаются в настройках проекта.
Что маскируется всегда, на любом тарифе и в любом режиме:
- все поля ввода без исключения;
- пароли — отдельно и дополнительно;
- по умолчанию — весь текст страницы (строгий режим).
Что не записывается вообще: содержимое canvas, встроенные изображения,
шрифты, кросс-доменные фреймы, консоль и сетевые запросы.
Как исключить больше:
- Отметить чувствительные области
data-pp-block. - Оставить строгий текстовый режим — он включён по умолчанию.
- Снизить долю записываемых сессий.
- Выключить записи для проекта совсем.
Отметки на таймлинге записи — ярость-клики, «мёртвые» клики и ошибки — не несут полезной нагрузки: ни селекторов, ни текстов, ни адресов.
Политика безопасности контента
| Директива | Значение | Зачем |
|---|---|---|
script-src |
origin скрипта | загрузка трекера и его модулей |
connect-src |
origin приёма | отправка событий |
worker-src |
blob: |
только записи сессий |
unsafe-eval не требуется. Если весь исполняемый код должен отдаваться с
вашего домена — см. self-hosted.
Хранение и удаление
Срок хранения событий и записей сессий определяется тарифом организации и в интерфейсе показывается только для чтения — произвольным значением он не задаётся. Актуальные сроки по тарифам — на странице тарифов.
Удаление данных конкретного человека — отдельная процедура в кабинете; тарифом она не ограничена. Отзыв согласия в браузере останавливает сбор и очищает браузер, но не удаляет уже принятые события.
Что мы здесь не утверждаем
На этой странице описано поведение продукта, подтверждённое его кодом. Она не является юридическим заключением и не заменяет вашу оценку соответствия требованиям: обязанности оператора данных, тексты уведомлений и основания обработки определяете вы.