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
)
}
}
ネットワークリクエスト
Section titled ネットワークリクエストリクエスト/レスポンスのデータを自動的に除外するために、2 つのキーが用意されています。ボディ用の 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)
ご質問はありますか?
Section titled ご質問はありますか?この手順についてご不明な点がございましたら、Slack までお気軽にお問い合わせください。