Очистка данных (Web)

Как очищать данные и обеспечивать конфиденциальность ваших пользователей.

Очистка данных (Web)

Очистка данных записей

Section titled Очистка данных записей

Вы можете очищать то, что захватывает OpenReplay, как на глобальном, так и на детальном уровне. Любые скрытые или игнорируемые данные не будут захвачены в источнике. Иными словами, эти данные никогда не покинут браузер пользователя.

Video Tutorial

Посмотрите, как очищать конфиденциальные данные в ваших записях

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

Глобальный уровень

Section titled Глобальный уровень

Данные можно очищать на уровне трекера при настройке OpenReplay.

Я использую скрипт OpenReplay

Section titled Я использую скрипт OpenReplay

Конфигурация проекта в OpenReplay

  1. Нажмите на Tracking Code вашего проекта в разделе ‘Preferences > Projects’.
  2. Параметры записи данных должны появиться прямо перед фрагментом кода:
  • Inputs: Чтобы игнорировать, скрывать или записывать все вводимые значения ваших пользователей.
  • Do not record any numeric text: Чтобы игнорировать числовые значения, содержащиеся в текстовых элементах.
  • Do not record email addresses: По умолчанию все адреса электронной почты, содержащиеся в текстовых элементах, скрываются и не будут отображаться в записях. Вы можете отключить это, сняв флажок.
  1. Изменение параметров записи данных влияет на фрагмент кода. Обязательно скопируйте и вставьте обновленный скрипт в ваше веб-приложение.

Я использую NPM OpenReplay

Section titled Я использую NPM OpenReplay

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

  • obscureTextEmails?: boolean Скрывает адреса электронной почты в текстовых элементах. Адреса электронной почты будут преобразованы в случайную цепочку звездочек. По умолчанию: true.
  • obscureTextNumbers?: boolean Скрывает числа в текстовых элементах. Числа будут преобразованы в случайную цепочку звездочек. По умолчанию: false.
  • obscureInputEmails?: boolean Скрывает адреса электронной почты в полях ввода. Значения электронной почты будут преобразованы в случайную цепочку звездочек. По умолчанию: true.
  • obscureInputDates?: boolean Скрывает даты в полях ввода. Значения дат будут преобразованы в случайную цепочку звездочек. По умолчанию: false.
  • defaultInputMode?: 0 | 1 | 2 Режим захвата по умолчанию для вводимых значений. Соответственно: обычный, скрытый или игнорируемый. По умолчанию: 1 (скрытый).

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

Детальный уровень

Section titled Детальный уровень

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

Использование HTML-атрибутов

Section titled Использование HTML-атрибутов
  • data-openreplay-obscured для маскировки текстового содержимого тегов <input>, <img> и других HTML-элементов (например, <div>), за исключением <svg> и <canvas>.
<!--Obscuring input fields-->
<form action="/action_page.php">
  Name: <input type="text" name="fname" data-openreplay-obscured><br>
  <input type="submit" value="Submit">
</form>
<!--Obscuring a div element-->
<div style="background-color:lightblue" data-openreplay-obscured>
  <h3>This is a sensitive information</h3>
  <p>This is an important paragraph</p>
  <img src="important_image.jpg">
</div>
  • data-openreplay-hidden для редактирования содержимого тегов <input>, <img>, <svg> и других HTML-элементов (например, <div>), за исключением <canvas>. Содержимое элемента (включая его дочерние компоненты) удаляется, но его свойства и аргументы сохраняются, как в этом примере:
<div style="background-color:lightblue" data-openreplay-hidden>
  <div>This is a sensitive information</div>
  <svg>An important chart</svg>
</div>

В результате трекер запишет следующий DOM:

<div style="background-color:lightblue" data-openreplay-hidden>
</div>

Использование функции domSanitizer

Section titled Использование функции domSanitizer
  • Функция domSanitizer: (node: Element) => SanitizeLevel позволяет избежать необходимости размечать каждый HTML-компонент, который нужно очистить. SanitizeLevel может быть Plain (0), Obscured (1) или Hidden (2). Эта функция передается конструктору трекера. Ниже приведен пример редактирования всех HTML-элементов с определенным именем CSS-класса:
// Import SanitizeLevel enum
import Tracker, { SanitizeLevel } from "@openreplay/tracker";

const tracker = new Tracker({
  projectKey: PROJECT_KEY,
  domSanitizer: (node: Element) => {
    const elementClassNames = node.classList

    if (elementClassNames.contains('to_be_redacted_class')) {
      return SanitizeLevel.Hidden
    }

    if (node.id === 'sensitiveData') {
      return SanitizeLevel.Obscured
    }

    return SanitizeLevel.Plain
  }
})
tracker.start()

Примечание: Все очищаемые элементы маскируются/редактируются на уровне источника (трекера), так что конфиденциальные данные никогда не достигают экземпляра OpenReplay.

Очистка данных DevTools

Section titled Очистка данных DevTools

Вы можете использовать SDK OpenReplay для очистки сетевых данных и состояния приложения.

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

Используйте параметр sanitizer для редактирования конфиденциальных данных из запроса/ответа Fetch/XHR. См. сетевые параметры для получения подробной информации.

Также ознакомьтесь с этим пошаговым руководством о том, как захватывать и очищать сетевые запросы.

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

Управление состоянием

Section titled Управление состоянием

Удаляйте конфиденциальные данные из хранилища состояния вашего фронтенда с помощью SDK OpenReplay.

Используйте параметры actionFilter, actionTransformer и stateTransformer для редактирования конфиденциальных действий и поддеревьев из вашего хранилища. См. документацию плагина redux для получения подробной информации.

Используйте параметры filter, transformer и mutationTransformer для редактирования конфиденциальных мутаций и поддеревьев из вашего хранилища. См. документацию плагина vuex для получения подробной информации.

Используйте параметры filter, transformer и mutationTransformer для редактирования конфиденциальных мутаций и поддеревьев из вашего хранилища. См. документацию плагина zustand для получения подробной информации.

Используйте параметры filter, transformer и mutationTransformer для редактирования конфиденциальных мутаций и поддеревьев из вашего хранилища. См. документацию плагина pinia для получения подробной информации.

Используйте параметры actionFilter, actionTransformer и stateTransformer для редактирования конфиденциальных действий и поддеревьев из вашего хранилища. См. документацию плагина ngrx для получения подробной информации.

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