توضّح لك هذه الصفحة كيفية تفعيل ميزة "فحص التطبيق" في تطبيق Flutter باستخدام مقدّمي الخدمة التلقائيين: Play Integrity على أجهزة Android وDevice Check على منصات Apple و reCAPTCHA v3 على الويب. عند تفعيل ميزة "فحص التطبيقات"، تساعد في التأكّد من أنّه لا يمكن إلا لتطبيقك الوصول إلى موارد Firebase في مشروعك. اطّلِع على نظرة عامة حول هذه الميزة.
1. إعداد مشروعك على Firebase
ثبِّت FlutterFire وفعِّله إذا لم يسبق لك إجراء ذلك.
سجِّل تطبيقاتك لاستخدام ميزة "فحص التطبيق" مع موفِّري سلامة Play و"فحص الجهاز" و"Google reCAPTCHA" في القسم إعدادات المشروع > فحص التطبيق في وحدة تحكُّم Firebase.
عليك عادةً تسجيل جميع تطبيقات مشروعك، لأنّه بعد فعالة ميزة فرض الامتثال لمنتج Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الخلفية للمنتجات.
اختياري: في إعدادات تسجيل التطبيق، يمكنك ضبط مدة بقاء مخصّصة (TTL) لعناصر أمان App Check التي يصدرها مقدّم الخدمة. يمكنك ضبط وقت الاسترجاع على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب مراعاة المفاضلات التالية:
- الأمان: توفّر قيم مهلة انتهاء الصلاحية الأقصر مستوى أمان أعلى، لأنّها تقلّل من المهلة التي يمكن فيها لمهاجمٍ إساءة استخدام رمز مميّز تم تسريبه أو اعتراضه.
- الأداء: تعني مدد مدة البقاء (TTL) الأقصر أنّ تطبيقك سيُجري عملية إثبات الهوية بشكلٍ أكثر تكرارًا. بما أنّ عملية إثبات صحة التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم فيها تنفيذها، يمكن أن تؤثّر مدة البقاء القصيرة في أداء تطبيقك.
- الحصة والتكلفة: إنّ قيم مهلة الجلسة الأقصر وعمليات إعادة الشهادة المتكرّرة تؤديان إلى استنفاد الحصة بشكل أسرع، وقد تؤدي إلى زيادة التكلفة في الخدمات المدفوعة. راجِع الحصص والحدود.
إنّ وقت الاستبدال التلقائي مناسب لمعظم التطبيقات. تجدر الإشارة إلى أنّ مكتبة App Check تُعيد تحميل الرموز المميّزة بعد مرور نصف مدة صلاحيتها تقريبًا.
2- إضافة مكتبة App Check إلى تطبيقك
من جذر مشروع Flutter، شغِّل الأمر التالي لتثبيت المكوّن الإضافي:
flutter pub add firebase_app_check
بعد الانتهاء، أعِد إنشاء تطبيق Flutter:
flutter run
3- إعداد فحص التطبيق
أضِف رمز الإعداد التالي إلى تطبيقك كي يتم تشغيله قبل
استخدام أي من خدمات Firebase، مثل Storage، ولكن بعد استدعاء
Firebase.initializeApp()
.
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
الخطوات التالية
بعد تثبيت مكتبة App Check في تطبيقك، ابدأ بتوزيع التطبيق المعدَّل على المستخدمين.
سيبدأ تطبيق العميل المعدَّل بإرسال الرموز المميّزة لفحص التطبيق مع كل طلب يُرسله إلى Firebase، ولكن لن تشترط منتجات Firebase أن تكون الرموز المميّزة صالحة إلى أن تفعّل ميزة التنفيذ في قسم "فحص التطبيق" ضمن وحدة تحكّم Firebase.
مراقبة المقاييس وتفعيل إجراءات التنفيذ
قبل تفعيل إجراءات التنفيذ، عليك التأكّد من أنّ ذلك لن يؤدي إلى تعطيل الخدمة للمستخدمين الحاليين والقانونيين. من ناحية أخرى، إذا لاحظت استخدامًا مريبًا لموارد تطبيقك، ننصحك بتفعيل إجراءات التنفيذ في وقت أقرب.
للمساعدة في اتخاذ هذا القرار، يمكنك الاطّلاع على مقاييس "فحص التطبيقات" للخدمات التي تستخدمها:
- تتبُّع مقاييس طلبات App Check لخدمات Realtime Database وCloud Firestore وCloud Storage وAuthentication
- مراقبة مقاييس طلبات App Check لخدمة Cloud Functions
تفعيل ميزة فرض فحص التطبيقات
بعد أن تفهم كيفية تأثُّر المستخدمين بميزة "فحص التطبيق" وتكون مستعدًا للمتابعة، يمكنك تفعيل ميزة "فرض فحص التطبيق":
- فعِّل فرض فحص التطبيقات لقاعدة بيانات "الوقت الفعلي" وCloud Firestore وCloud Storage والمصادقة.
- تفعيل فرض فحص التطبيقات في Cloud Functions
استخدام أداة "فحص التطبيقات" في بيئات تصحيح الأخطاء
بعد تسجيل تطبيقك في أداة App Check، إذا أردت تشغيله في بيئة لا تصنّفها أداة App Check عادةً على أنّها صالحة، مثل المحاكي أثناء التطوير أو من بيئة التكامل المستمر (CI)، يمكنك إنشاء إصدار تصحيح أخطاء من تطبيقك يستخدم مقدّم تصحيح أخطاء أداة App Check بدلاً من مقدّم شهادة اعتماد حقيقي.
راجِع مقالة استخدام App Check مع موفِّر تصحيح الأخطاء في تطبيقات Flutter.