Web 隐私与安全
Web SDK 的数据处理范围和接入责任如下。隐私告知、授权方式及数据处理要求由接入方确定。Android 和 iOS 应用商店申报分别见 Google Play 数据安全和 App Store 隐私。
1. 先确认用户授权
SDK 默认状态为 GRANTED + MINIMAL,这是技术初始状态,不代表已经取得用户授权。如果需要在用户作出选择前停止身份创建、分析存储和网络请求,请以 PENDING 初始化,并由宿主的授权流程在用户选择后调用相应 API。
import { TrackBusinessSDK } from '@track-business/sdk-web';
const sdk = TrackBusinessSDK.create({
endpoint: 'https://collector.example.com/v1/events/batch',
projectKey: 'your-project-key',
initialConsent: { status: 'PENDING' },
});
// 宿主确认用户授权后:
await sdk.grantConsent('STANDARD');MINIMAL、STANDARD、ADVANCED 是授权后的数据范围。是否需要 STANDARD 取决于实际使用的事件和插件;不应为了启用插件而绕过宿主授权流程。用户拒绝或撤回、本地清理及授权前事件的处理方式见授权与隐私。
2. 审查实际采集内容
| 数据或能力 | 接入时应核对 |
|---|---|
| 身份与手动事件 | 用户 ID 由宿主提供;事件名称和自定义属性由业务决定。不要把密码、访问令牌等不应采集的内容传入 SDK。 |
| 页面信息 | 页面 URL 副本会清理凭据、查询参数和片段,但路径、来源页、页面标题和业务路由仍可能包含敏感信息;按 pagePrivacy 配置与实际页面核对。 |
| 自动采集与插件 | 根据实际启用的插件、选择器和授权等级审查;不同插件的数据范围不同。 |
| 营销来源 | 归因插件可能读取配置允许的渠道参数;不要将敏感信息放入这些参数。 |
| 字段过滤 | SDK 对内建或明确配置的敏感字段名执行处理,不能保证识别所有自定义字段或字段值中的个人信息。 |
页面字段与 pagePrivacy 配置见Web 自动采集;插件范围见 Web 插件;事件与属性见事件与属性字典。
3. 浏览器存储与用户清理
Web SDK 使用浏览器存储保存身份、授权设置和待发送事件。待发送事件在浏览器存储中不加密;同一网站中的脚本可能访问这些数据。不要在事件或网页配置中放入服务端密钥,并检查站点的第三方脚本和内容安全策略。
浏览器存储可能不可用、被清理或受浏览器策略限制,不能将它视为永久保存。撤回授权时的 SDK 自有状态清理不等于删除已上传的数据;接收端的数据删除和保留策略由接入方与数据服务方落实。详见授权与隐私与离线队列。
4. 网络与公开凭据
projectKey 是公开的项目标识,不能作为业务用户的身份凭据。管理密钥和签名私钥不得放入网页。生产环境使用对应项目的 HTTPS 上报地址,详见环境与项目凭据。
Web SDK 可直接连接 Track 网关。若使用网站同源代理,不要将业务 Cookie 或认证头转发给上报网关。排查时避免在日志、截图或工单中暴露令牌或事件中的敏感数据。
5. 启用特殊功能前
- App 内 H5 按 App 与 H5 集成核对原生与 Web 的身份和授权边界。
上线前核对
- 根据业务授权流程选择初始 Consent,分别验证未授权、授权和撤回。
- 检查启用的插件、页面路径、来源参数及自定义属性,不向 SDK 传入不应采集的数据。
- 核对上报地址、项目 Key 和 HTTPS;使用网站同源代理时检查转发配置。
- 与数据服务方确认留存、删除和日志策略;按实际浏览器与部署环境验证。
自动交互标识
DOM 点击与语义交互采用相同的标识符过滤。自动采集不读取文本、HTML 或表单值;可选的 aria label 仍需接入方确认其内容适合采集。配置和元素属性中的目标标识使用静态业务名称,不放入用户身份、订单详情或认证材料。内置模式清洗不能替代采集范围审核,也不能保证识别任意格式的个人信息。