تساعدك واجهة برمجة التطبيقات Play Integrity API في التحقّق من أنّ إجراءات المستخدمين وطلبات الخادم تتم باستخدام تطبيقك الحقيقي الذي تم تثبيته من خلال Google Play ويتم تشغيله على جهاز Android حقيقي. من خلال رصد التفاعلات المحفوفة بالمخاطر، مثل التفاعلات من إصدارات التطبيقات المعدَّلة أو الأجهزة غير الموثوق بها أو البيئات المحاكية، يمكن لخادم الخلفية الاستجابة من خلال اتّخاذ الإجراءات المناسبة لمنع إساءة الاستخدام والوصول غير المصرّح به، ومكافحة الاحتيال والغش، وحماية المستخدمين من الهجمات.
تعرض واجهة برمجة التطبيقات بيانات سلامة تساعدك في رصد التهديدات المحتملة، بما في ذلك:
- الوصول غير المصرَّح به: تساعدك نتيجة
accountDetails
في تحديد ما إذا كان المستخدم قد ثبَّت تطبيقك أو لعبتك أو دفع رسومهما على Google Play. - التلاعب بالرمز: تساعدك نتيجة
appIntegrity
في تحديد ما إذا كنت تتفاعل مع برنامجك الثنائي غير المعدّل الذي يتعرّف عليه Google Play. - الأجهزة والبيئات المحاكية الخطيرة: يساعدك
deviceIntegrity
بيان السلامة في تحديد ما إذا كان تطبيقك يعمل على جهاز Android حقيقي معتمَد من "Play للحماية" أو نسخة حقيقية من برنامج "ألعاب Google Play" على الكمبيوتر.
يمكن لمطوّري Google Play أيضًا الموافقة على تلقّي بيانات سلامة إضافية لرصد مجموعة أكبر من التهديدات المحتملة، بما في ذلك:
- الأجهزة التي لم يتم تثبيت رموز تصحيح الأمان عليها: تساعدك الاستجابة
MEETS_STRONG_INTEGRITY
في بيانdeviceIntegrity
على تحديد ما إذا كان الجهاز قد طبَّق آخر تحديثات الأمان (للأجهزة التي تعمل بالإصدار Android 13 والإصدارات الأحدث). - الوصول الخطير من خلال تطبيقات أخرى: تساعدك
appAccessRiskVerdict
في تحديد ما إذا كانت هناك تطبيقات قيد التشغيل يمكنها أخذ لقطات للشاشة أو عرض محتوى على السطح أو التحكم في الجهاز (على سبيل المثال، من خلال إساءة استخدام إذن تسهيل الاستخدام). - البرامج الضارة المعروفة: تساعدك
playProtectVerdict
في تحديد ما إذا كانت خدمة "Google Play للحماية" مفعَّلة واكتشفت تطبيقات خطيرة أو ضارة تم تثبيتها على الجهاز. - النشاط المفرط: يساعدك المستوى
recentDeviceActivity
في تحديد ما إذا كان الجهاز قد أجرى عددًا كبيرًا بشكل غير طبيعي من الطلبات مؤخرًا، ما قد يشير إلى زيارات مبرمَجة وقد يكون علامة على تعرّضه لهجوم. - إساءة الاستخدام المتكرّرة والأجهزة التي تتم إعادة استخدامها: تساعدك واجهة برمجة التطبيقات
deviceRecall
(إصدار تجريبي) في تحديد ما إذا كنت تتفاعل مع جهاز سبق لك الإبلاغ عنه، حتى إذا تمت إعادة تثبيت تطبيقك أو إعادة ضبط الجهاز.
يمكن استخدام واجهة برمجة التطبيقات على جميع أشكال أجهزة Android، بما في ذلك الهواتف والأجهزة اللوحية والهواتف القابلة للطي وAndroid Auto وAndroid TV وAndroid XR وChromeOS وWear OS، وكذلك على "ألعاب Google Play للكمبيوتر".
اعتبارات الأمان
توفّر واجهة برمجة التطبيقات Play Integrity API أكبر قيمة لتطبيقك عند اتّباع الممارسات المقترَحة التالية:
وضع استراتيجية لمكافحة إساءة الاستخدام
تعمل واجهة برمجة التطبيقات Play Integrity API على أفضل نحو عند استخدامها إلى جانب إشارات أخرى كجزء من استراتيجيتك الشاملة لمكافحة إساءة الاستخدام، وليس كآلية وحيدة لمكافحة إساءة الاستخدام. استخدِم واجهة برمجة التطبيقات هذه مع أفضل ممارسات الأمان المناسبة الأخرى لتطبيقك. يمكن لتطبيقك تلقائيًا إرسال ما يصل إلى 10,000 طلب إجمالي يوميًا في جميع عمليات التثبيت. يمكنك تقديم طلب لزيادة الحد الأقصى اليومي.
جمع بيانات القياس عن بُعد وفهم جمهورك قبل اتّخاذ أي إجراء
قبل تغيير سلوك تطبيقك استنادًا إلى نتائج اختبارات واجهة برمجة التطبيقات Play Integrity API، يمكنك التعرّف على الوضع الحالي لجمهورك الحالي من خلال تنفيذ واجهة برمجة التطبيقات بدون فرض أي قيود. بعد معرفة النتائج التي تعرضها قاعدة التثبيت الحالية، يمكنك تقدير تأثير أي إجراء تنفيذي تخطّط له وتعديل استراتيجيتك لمكافحة إساءة الاستخدام وفقًا لذلك.
تحديد طريقة طلب بيانات السلامة
توفّر واجهة برمجة التطبيقات Play Integrity API خيارَين لطلب بيانات السلامة وتلقّيها. سواء كنت تستخدم الطلبات العادية أو الكلاسيكية أو مزيجًا من النوعين، سيتم عرض الردّ على بيانات السلامة بالتنسيق نفسه.
تتوفّر طلبات واجهة برمجة التطبيقات العادية لأي تطبيق أو لعبة، ويمكن إجراؤها عند الطلب للتحقّق من صحة أي إجراء يتخذه المستخدم أو أي طلب يرسله الخادم. تتميّز الطلبات العادية بأقل وقت استجابة (بضع مئات من الملّي ثانية في المتوسط) وبمستوى عالٍ من الموثوقية في الحصول على نتيجة صالحة للاستخدام. تستفيد الطلبات العادية من التخزين المؤقت الذكي على الجهاز مع تفويض الحماية من أنواع معيّنة من الهجمات إلى Google Play.
ستبقى الطلبات الكلاسيكية للبيانات من واجهة برمجة التطبيقات متاحة أيضًا، وهي الطريقة الأصلية لطلب بيانات السلامة. تتضمّن الطلبات الكلاسيكية وقت استجابة أطول (بضع ثوانٍ في المتوسط)، وتتحمّل أنت مسؤولية الحدّ من مخاطر أنواع معيّنة من الهجمات. تستهلك الطلبات الكلاسيكية المزيد من بيانات المستخدمين وطاقة البطارية مقارنةً بالطلبات العادية، لأنّها تبدأ بتقييم جديد، لذا يجب تقديمها بشكل غير متكرّر كإجراء لمرة واحدة للتحقّق مما إذا كان الإجراء الحساس أو القيّم للغاية حقيقيًا. إذا كنت تفكّر في تقديم طلب كلاسيكي وتخزينه مؤقتًا لاستخدامه لاحقًا، ننصحك بتقديم طلب عادي بدلاً من ذلك للحدّ من خطر الهجمات.
يوضّح الجدول التالي بعض الاختلافات الرئيسية بين نوعَي الطلبات:
طلب عادي للبيانات من واجهة برمجة التطبيقات | طلب البيانات من واجهة برمجة التطبيقات الكلاسيكية | |
---|---|---|
الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android المطلوب | الإصدار 5.0 من نظام التشغيل Android (المستوى 21 لواجهة برمجة التطبيقات) أو إصدار أحدث | الإصدار 4.4 من نظام التشغيل Android (المستوى 19 لواجهة برمجة التطبيقات) أو إصدار أحدث |
يجب إعداد واجهة برمجة التطبيقات | ✔️ (بضع ثوانٍ) | ❌ |
وقت الاستجابة المعتاد للطلبات | بضع مئات من الملّي ثانية | بضع ثوانٍ |
معدّل تكرار الطلبات المحتملة | متكرّر (التحقّق عند الطلب من أي إجراء أو طلب) | غير متكرّر (عملية تحقّق لمرة واحدة من الإجراءات ذات القيمة الأعلى أو الطلبات الأكثر حساسية) |
التخفيف من هجمات إعادة الإرسال والهجمات المشابهة | إجراءات التخفيف التلقائية من Google Play | استخدام الحقل nonce مع منطق من جهة الخادم |
يمكنك الاطّلاع على جدول يتضمّن المزيد من الاختلافات في اعتبارات الطلبات الكلاسيكية.
طلب بيان السلامة في الوقت المناسب
يجب طلب الحصول على قرار بشأن مخاطر الوصول إلى التطبيق في أقرب وقت ممكن من وقت الإجراء أو طلب الخادم الذي تريد الحماية من الوصول إليه، وذلك لمنع المحتالين من التحايل على عملية التحقّق من السلامة التي يجريها تطبيقك.
جعل طلبات البيانات من واجهة برمجة التطبيقات صعبة التكرار
تحتوي طلبات واجهة برمجة التطبيقات العادية على حقل يُسمى requestHash
يُستخدَم للحماية من التلاعب والهجمات المشابهة. في هذا الحقل، يجب تضمين ملخّص لجميع القيم ذات الصلة من طلب تطبيقك. اتّبِع الإرشادات حول
كيفية استخدام ربط المحتوى
لحماية الطلبات العادية في تطبيقك.
تتضمّن طلبات Classic API حقلًا يُسمى nonce
(اختصارًا للعبارة number once)، ويُستخدم هذا الحقل للحماية من أنواع معيّنة من الهجمات، مثل هجمات إعادة التشغيل وهجمات التلاعب. اتّبِع الإرشادات حول كيفية إنشاء أرقام عشوائية لحماية الطلبات التقليدية في تطبيقك.
تجنُّب تخزين بيانات السلامة مؤقتًا
تزيد بيانات سلامة الجهاز المخزَّنة مؤقتًا من خطر استخدام الخوادم الوكيلة، وهو نوع من الهجمات يعيد فيه المخترق استخدام بيانات من جهاز سليم لأغراض مسيئة في بيئة أخرى. بدلاً من تخزين الردود مؤقتًا، يمكنك إجراء طلب عادي من واجهة برمجة التطبيقات للحصول على قرار عند الطلب.
وضع استراتيجية تنفيذ على مستويات
يتضمّن بيان السلامة الذي تقدّمه واجهة Play Integrity API مجموعة من الردود المحتملة، ما يتيح إنشاء استراتيجية للتصدّي لإساءة الاستخدام تتضمّن فئات متعدّدة من إجراءات التنفيذ. يمكنك إجراء ذلك من خلال ضبط خادم الخلفية في تطبيقك ليعمل بشكل مختلف بناءً على كل رد محتمل أو مجموعة من الردود.
يمكنك أيضًا تصنيف استراتيجية التنفيذ حسب مدى موثوقية الجهاز من خلال الموافقة على تلقّي تصنيفات إضافية للأجهزة في ردّ واجهة برمجة التطبيقات من Play Console. سيعرض كل جهاز جميع التصنيفات التي يستوفي معاييرها. على سبيل المثال، بعد الموافقة على تلقّي جميع تصنيفات الأجهزة، يمكنك اختيار الوثوق بجهاز يعرض MEETS_STRONG_INTEGRITY
وMEETS_DEVICE_INTEGRITY
وMEETS_BASIC_INTEGRITY
أكثر من جهاز يعرض MEETS_BASIC_INTEGRITY
فقط. يمكنك الردّ بشكل مختلف عن الخادم في كل سيناريو.
إرسال مجموعة من الردود من الخادم إلى تطبيقك
من الصعب تكرار مجموعة من نتائج القرارات مقارنةً بإرسال ردّ ثنائي بالسماح أو الرفض من الخادم إلى التطبيق لكل ردّ. على سبيل المثال، يمكنك استخدام سلسلة من الردود ذات الصلة، مثل "السماح" و"السماح مع فرض قيود" و"السماح مع فرض قيود بعد إكمال اختبار CAPTCHA" و"الرفض".
رصد حالات إساءة الاستخدام المتكرّرة باستخدام ميزة "تذكُّر الجهاز" مع الحفاظ على خصوصية المستخدم
تمنح ميزة تذكُّر الجهاز التطبيقات إمكانية تخزين بعض البيانات المخصّصة المرتبطة بجهاز معيَّن واستردادها بطريقة تحافظ على خصوصية المستخدم. يتم تخزين البيانات على خوادم Google، ما يسمح لتطبيقك باسترداد بيانات كل جهاز بشكل موثوق به حتى بعد إعادة تثبيت التطبيق أو إعادة ضبط الجهاز. يوفّر لك ذلك طريقة موثوقة لإعادة تحديد هوية جهاز سبق أن رصدت فيه إساءة استخدام، ما يتيح لك اتّخاذ إجراءات لمنع استخدامه في إساءة الاستخدام مرة أخرى. يمكنك تحديد المعنى الخاص بك للقيم الثلاث التي تشكّل بيانات استدعاء الجهاز:
- يمكنك استخدامها كحد أقصى ثلاث علامات أو قيم منطقية منفصلة. على سبيل المثال، يمكن أن تشير القيم إلى ما إذا كان الجهاز قد أنشأ حسابًا أو لم ينشئ، أو ما إذا كان قد استفاد من فترة تجريبية مجانية أو لم يستفد، أو ما إذا كان معروفًا بإساءة الاستخدام الشديدة أو لا.
- بدلاً من ذلك، يمكنك دمج جميع حالات القيم في ما يصل إلى ثمانية تصنيفات مخصّصة، مثل تصنيف واحد للحالة التلقائية عندما تكون جميع القيم الثلاث غير معدَّلة، وسبعة تصنيفات ذات معانٍ مخصّصة. يتيح لك ذلك تقسيم جميع الأجهزة إلى ما يصل إلى ثماني مجموعات استنادًا إلى السلوكيات أو الإجراءات التي تحدّدها. في هذه الحالة، يشير
writeDates
الذي تم تعديله مؤخرًا من بين الثلاثة إلى آخر مرة عدّلت فيها التصنيف.
يُرجى أيضًا مراعاة المتطلبات الأساسية والاعتبارات الأخرى عند العمل مع بيانات استدعاء الأجهزة.
رصد حالات إساءة الاستخدام على نطاق واسع باستخدام أحدث نشاط للجهاز
استخدِم ميزة أحدث نشاط للجهاز في Play Integrity API للعثور على الأجهزة التي تطلب أعدادًا كبيرة من الرموز المميزة للسلامة. يُنشئ المسيئون الذين يمارسون أنشطة بكميات كبيرة عادةً نتائج إثبات صحة صالحة من أجهزة حقيقية ويقدّمونها إلى برامج التتبُّع لأتمتة الهجمات على الأجهزة التي تم الوصول إلى جذرها والمحاكيات. يمكنك استخدام مستوى "أحدث نشاط للجهاز" للتحقّق من عدد بيانات الاعتماد التي أنشأها تطبيقك على هذا الجهاز خلال آخر ساعة.
عرض رسائل الخطأ التي تتضمّن إجراءات
قدِّم للمستخدم رسائل خطأ مفيدة عند الإمكان، وأخبِره بالإجراءات التي يمكنه اتّخاذها لحلّ المشكلة، مثل إعادة المحاولة أو تفعيل الاتصال بالإنترنت أو التأكّد من أنّ تطبيق "متجر Play" محدَّث.
وضع خطة للمشاكل أو الانقطاعات غير المتوقّعة
تعرض لوحة البيانات الخاصة بالحالة في Play معلومات حول حالة خدمة Play Integrity API، بالإضافة إلى معلومات حول أي أعطال أو انقطاعات. عليك التخطيط مسبقًا لطريقة عمل خادم الخلفية في حال حدوث انقطاع واسع النطاق في واجهة برمجة التطبيقات Play Integrity API، وهو أمر غير محتمل. يُرجى العِلم أنّه يجب أن يكون خادم الخلفية جاهزًا أيضًا للعمل في حال إبطال مفاتيح "شهادة صحة مفتاح منصة Android" الخاصة بالأجهزة.
الحلول الشاملة لمكافحة الاحتيال في المؤسسات
يمكن لعملاء المؤسسات الذين يبحثون عن حلّ كامل لإدارة الاحتيال وروبوتات الدردشة شراء reCAPTCHA Enterprise للأجهزة الجوّالة، والذي يتضمّن حِزم تطوير البرامج (SDK) لنظام التشغيل Android التي توفّر للمطوّرين نتائج تقييم مخاطر الاحتيال. تتضمّن reCAPTCHA Enterprise تلقائيًا إشارات Play Integrity API، وتجمعها مع إشارات شبكة reCAPTCHA وإشارات التطبيقات للعملاء، ما يوفّر حلّاً سهلاً وغير مرئي لإدارة الاحتيال. ويمكنها أيضًا توفير الحماية لتطبيقات Android التي لا تتوفّر فيها واجهة برمجة التطبيقات Play Integrity API.
التحقّق من صحة الزيارات المحفوفة بالمخاطر عند الوصول إلى ميزات حساسة أو عالية القيمة
حدِّد الإجراءات الحسّاسة أو المهمة في تطبيقك أو لعبتك لحمايتها باستخدام واجهة برمجة التطبيقات Play Integrity API بدلاً من رفض الوصول إليها بشكل مباشر. وعند الإمكان، يجب التحقّق من الزيارات المحفوفة بالمخاطر قبل السماح بتنفيذ الإجراءات العالية القيمة. على سبيل المثال، عندما تشير ميزة "احتمالية اختراق التطبيق" إلى أنّ هناك تطبيقًا قيد التشغيل يمكنه أخذ لقطات للشاشة، اطلب من المستخدم إيقاف التطبيقات التي يمكنها أخذ لقطات للشاشة أو إلغاء تثبيتها قبل السماح له بمواصلة استخدام الوظائف التي تريد حمايتها.
بنود الخدمة وأمان البيانات
إذا وصلت إلى واجهة برمجة التطبيقات Play Integrity API أو استخدمتها، فإن هذا يعني أنّك توافق على بنود خدمة واجهة برمجة التطبيقات Play Integrity API. يُرجى قراءة وفهم جميع الأحكام والسياسات السارية قبل الوصول إلى واجهة برمجة التطبيقات.
يتضمّن Google Play قسم "أمان البيانات" الذي يتيح للمطوّرين الإفصاح عن ممارسات جمع البيانات ومشاركتها والحفاظ على أمانها في تطبيقاتهم لإبقاء المستخدمين على اطّلاع دائم. لمساعدتك في إكمال نموذج البيانات، يمكنك الاطّلاع على هذه المعلومات حول طريقة تعامل واجهة برمجة التطبيقات Play Integrity API مع البيانات.