Android SDK - 清理敏感数据
UI 组件
Section titled UI 组件被清理的视图将在生成的回放中被模糊处理。你可以添加任意 UI 组件,并且一旦它离开屏幕,就会被自动移除(以节省内存)。
import com.openreplay.tracker.OpenReplay
OpenReplay.addIgnoredView(view)
Jetpack Compose
Section titled Jetpack Composeimport com.openreplay.tracker.Sanitize
Sanitize {
Button(
modifier = Modifier
.fillMaxWidth()
.padding(top = 28.dp, bottom = 3.dp)
.trackTouchEvents("Continue Button"),
onClick = onSubmit,
) {
Text(
text = "Submit",
style = MaterialTheme.typography.titleSmall
)
}
}
系统导出了两个键以自动裁剪请求/响应数据:ignoredKeys 用于请求体,ignoredHeaders 用于请求头。请求和响应都会被清理,但请求体仅在其为有效的 JSON 时才会受到影响。
只需赋值一个你想要清理的字符串列表即可:
val networkListener = NetworkListener()
networkListener.ignoredHeaders = ["mySecretToken"]
networkListener.ignoredKeys = ["password"]
也可以在将响应数据传递给监听器之前对其进行修改:
// ... request
var sanitizedData: Any? = null
data?.let {
try {
val json = JSONTokener(it).nextValue()
sanitizedData = customSanitizeFunction(it)
println(json)
} catch (error: JSONException) {
println("Error deserializing JSON: $error")
}
}
networkListener.finish(response, sanitizedData)