تكرار السؤال: …
الإجابة المختصرة
تطلب توكن أمان مشفر من Play Integrity API وترسله لخادمك الخلفي لفك تشفيره والتحقق من سلامة نظام التشغيل وحزمة التطبيق وحساب المستخدم.
الشرح
تعتمد الحماية القديمة على فحص وجود ملفات su أو كشف حزم الـ Magisk محليًا، وهي طرق سهلة الالتفاف عليها باستخدام أدوات الإخفاء. يوفر Play Integrity API فحصًا سحابيًا مشفرًا موثقًا من جوجل يضمن سلامة الجهاز عبر deviceRecognitionVerdict (مثل MEETS_DEVICE_INTEGRITY التي لا تتحقق على المحاكيات أو الأجهزة المعدلة)، وسلامة الثنائيات الأصلية غير المعدلة عبر appRecognitionVerdict = PLAY_RECOGNIZED، وحالة ترخيص الحساب عبر appLicensingVerdict.
مثال بالكود
// في التطبيق: طلب الـ Integrity Token وتمريره للسيرفر:
val integrityManager = PlayIntegrityFactory.create(context)
val response = integrityManager.requestIntegrityToken(
IntegrityTokenRequest.builder()
.setCloudProjectNumber(GOOGLE_CLOUD_PROJECT_NUMBER)
.build()
).await()
val integrityToken = response.token()
apiService.validateTokenOnBackend(integrityToken) // التحقق الصارم في الباك إند فقطأخطاء شائعة
- التحقق من صحة توكن الأمان داخل التطبيق محليًا بدلاً من إرساله للخادم، مما يمكن المهاجم من التلاعب بنتيجة الفحص بسهولة.