Android SDK - تنقية البيانات الحساسة

تفاصيل حول تنقية التسجيلات وبيانات الشبكة في متعقّب Android

Android SDK ⁠-⁠ تنقية البيانات الحساسة

مكوّنات واجهة المستخدم

Section titled مكوّنات واجهة المستخدم

سيتم تعتيم طرق العرض التي تمت تنقيتها في إعادة التشغيل الناتجة. يمكنك إضافة أي مكوّن من مكوّنات واجهة المستخدم، وسيتم إزالته تلقائيًا (للحفاظ على الذاكرة) بمجرد أن يختفي من الشاشة.

import com.openreplay.tracker.OpenReplay

OpenReplay.addIgnoredView(view)
import 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"]

من الممكن أيضًا تعديل بيانات الاستجابة قبل تمريرها إلى المستمع (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)

إذا كانت لديك أي أسئلة حول هذه العملية، فلا تتردد في التواصل معنا عبر Slack الخاص بنا أو الاطّلاع على المنتدى الخاص بنا.