Android SDK - Sanitizar dados sensíveis
Componentes de UI
Section titled Componentes de UIAs views sanitizadas ficarão desfocadas no replay resultante. Você pode adicionar qualquer componente de UI e ele será removido automaticamente (para preservar memória) assim que sair da tela.
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
)
}
}
Requisições de rede
Section titled Requisições de redeDuas chaves são exportadas para remover automaticamente os dados de requisição/resposta: ignoredKeys para o body e ignoredHeaders para os headers. Tanto a requisição quanto a resposta serão sanitizadas, mas o body só será afetado se for um JSON válido.
Basta atribuir uma lista de strings que você deseja sanitizar:
val networkListener = NetworkListener()
networkListener.ignoredHeaders = ["mySecretToken"]
networkListener.ignoredKeys = ["password"]
Também é possível alterar os dados da resposta antes de passá-los ao listener:
// ... 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)
Tem dúvidas?
Section titled Tem dúvidas?Se você tiver qualquer dúvida sobre este processo, fique à vontade para entrar em contato conosco no nosso Slack .