> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUM 隐私保护

> 阻止敏感浏览器数据进入 RUM 事件和 DOM 会话回放。

请在浏览器端应用隐私控制，避免敏感值离开用户设备。先使用默认遮罩模式，检查实际记录结果后再按需放行内容。

## 隐私安全默认值

```ts theme={null}
initRum({
  applicationId: 'checkout-web',
  clientToken: 'msrum_your_client_token',
  site: 'https://molesignal.example.com',
  defaultPrivacyLevel: 'mask',
  trackUrlQueryString: false,
});
```

使用这些默认值时：

* URL 查询参数和 Fragment 会被移除；
* 上下文中名为 `password`、`secret`、`token`、`authorization`、`cookie`、`api_key` 以及信用卡字段的键会被递归脱敏；
* 遮罩模式不会上报交互标签和原始错误堆栈；
* 会话回放中的 DOM 文本会被遮罩；
* 所有 Input 和 `contenteditable` 值始终会被遮罩，即使页面可见文本已被允许。

<Warning>
  按字段名脱敏只是安全兜底，不是数据分类系统。不要向用户或自定义上下文对象添加凭据、支付数据、
  健康数据或不必要的个人信息。
</Warning>

## 屏蔽或遮罩 DOM 内容

SDK 无需应用编写额外的 Recorder 代码，就能识别以下隐私属性：

```html theme={null}
<section data-molesignal-block>
  <!-- 整个子树会替换为占位符。 -->
</section>

<span data-molesignal-mask>Account holder name</span>

<div data-molesignal-ignore>
  <!-- 忽略这个元素的变化和事件。 -->
</div>
```

也可以按需替换默认选择器：

```ts theme={null}
sessionReplay: {
  blockSelector: '.payment-form, [data-private-panel]',
  maskTextSelector: '.customer-name, [data-molesignal-mask]',
  ignoreSelector: '.animation-layer, [data-molesignal-ignore]',
},
```

对秘密信息或大型敏感组件使用屏蔽；对布局仍有分析价值的文本使用遮罩；对没有排障价值的高频变化元素使用忽略。

## 谨慎允许页面可见文本

只有标记完所有敏感区域后，才可设置 `defaultPrivacyLevel: 'allow'`。Input 值仍会被遮罩，配置的
`maskTextSelector` 和 `contenteditable` 元素也会继续被遮罩。

```ts theme={null}
defaultPrivacyLevel: 'allow',
sessionReplay: {
  blockSelector: '[data-molesignal-block], .payment-details',
  maskTextSelector: '[data-molesignal-mask], .customer-identity',
},
```

## 控制 URL 与网络采集

除非应用能保证查询参数中不含标识符或秘密，否则请保持 `trackUrlQueryString: false`。
在采集前排除敏感路由或网络接口：

```ts theme={null}
excludedUrls: [
  '/account/security',
  /^https:\/\/api\.example\.com\/private\//,
  (url) => url.includes('/token-exchange'),
],
```

`allowedTracingUrls` 只控制哪些 Origin 可以提供链路上下文，不会启用请求或响应 Body 采集；
SDK 只记录耗时和清洗后的 URL 元数据。

## 上线前检查

<Steps>
  <Step title="记录一个受控测试会话">
    使用非生产测试数据走完登录、结算、个人资料、搜索和错误流程。
  </Step>

  <Step title="检查每种事件数据">
    检查会话元数据、操作名称、URL、错误堆栈、自定义上下文和 DOM 回放。
  </Step>

  <Step title="添加选择器和排除规则">
    屏蔽敏感子树，并排除不需要采集的路由。
  </Step>

  <Step title="界面变化后重新检查">
    把隐私选择器作为生产配置；页面结构发生变化时必须重新测试。
  </Step>
</Steps>

<Card title="会话回放" icon="video" href="/zh-Hans/rum/session-replay">
  定义隐私边界后再配置 DOM 记录。
</Card>
