توضّح لك هذه الصفحة كيفية تفعيل ميزة "فحص التطبيقات" في تطبيق Flutter باستخدام مقدّمي الخدمة التلقائيين: Play Integrity على Android وDevice Check على منصات Apple وreCAPTCHA الإصدار 3 على الويب. عند تفعيل فحص التطبيقات، يمكنك المساعدة في ضمان عدم إمكانية وصول أي تطبيق آخر إلى موارد Firebase الخاصة بمشروعك. يمكنك الاطّلاع على نظرة عامة حول هذه الميزة.
1. إعداد مشروع Firebase
ثبِّت FlutterFire وأعِد ضبط إعداداته إذا لم يسبق لك إجراء ذلك.
في وحدة تحكّم Firebase، انتقِل إلى الأمان > فحص التطبيقات.
في علامة التبويب التطبيقات، سجِّل تطبيقاتك لاستخدام App Check مع مقدّمي خدمات Play Integrity وDeviceCheck وreCAPTCHA.
عليك عادةً تسجيل جميع تطبيقات مشروعك، لأنّه بعد تفعيل فرض القيود على أحد منتجات Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الخلفية الخاصة بالمنتج.
اختياري: في إعدادات تسجيل التطبيق، اضبط مدة البقاء (TTL) المخصّصة لرموز فحص التطبيقات المميزة التي يصدرها مقدّم الخدمة. يمكنك ضبط قيمة TTL على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب الانتباه إلى المفاضلات التالية:
- الأمان: توفّر قيم TTL الأقصر مستوى أمان أعلى، لأنّها تقلّل من الفترة الزمنية التي يمكن للمهاجم إساءة استخدام الرمز المميز المسروق أو الذي تم اعتراضه خلالها.
- الأداء: تشير مدة البقاء (TTL) الأقصر إلى أنّ تطبيقك سيجري عملية إثبات صحة البيانات بشكل متكرّر. بما أنّ عملية إثبات صحة التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم تنفيذها، يمكن أن تؤثّر مدة البقاء القصيرة في أداء تطبيقك.
- الحصة والتكلفة: تؤدي قيم TTL الأقصر وعمليات إعادة التصديق المتكررة إلى استنفاد حصتك بشكل أسرع، وقد تؤدي إلى زيادة التكلفة بالنسبة إلى الخدمات المدفوعة. اطّلِع على الحصص والحدود.
إنّ قيمة TTL التلقائية مناسبة لمعظم التطبيقات. يُرجى العِلم أنّ مكتبة App Check تعيد إنشاء الرموز المميّزة كل نصف مدة البقاء (TTL) تقريبًا.
2. إضافة مكتبة فحص التطبيقات إلى تطبيقك
من جذر مشروع 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 أن تكون الرموز المميّزة صالحة إلى أن تفعِّل فرض استخدامها في قسم App Check ضِمن وحدة تحكّم Firebase.
مراقبة المقاييس وتفعيل التنفيذ
قبل تفعيل خيار فرض القيود، عليك التأكّد من أنّ ذلك لن يؤدي إلى تعطيل المستخدمين الحاليين الذين لديهم أذونات صحيحة. من ناحية أخرى، إذا لاحظت استخدامًا مشبوهًا لموارد تطبيقك، ننصحك بتفعيل خيار فرض القيود في أقرب وقت.
للمساعدة في اتّخاذ هذا القرار، يمكنك الاطّلاع على مقاييس فحص التطبيقات للخدمات التي تستخدمها:
- تتبُّع مقاييس طلبات فحص التطبيقات لكل من قاعدة بيانات الوقت الفعلي وCloud Firestore وCloud Storage وAuthentication
- مراقبة مقاييس طلبات فحص التطبيقات في Cloud Functions
تفعيل فرض استخدام App Check
عندما تفهم كيف سيؤثّر App Check في المستخدمين وتصبح مستعدًا للمتابعة، يمكنك تفعيل فرض استخدام App Check باتّباع الخطوات التالية:
- تفعيل فرض استخدام App Check لكل من Realtime Database وCloud Firestore وCloud Storage وAuthentication
- تفعيل فرض استخدام App Check في "وظائف السحابة الإلكترونية"
استخدام فحص التطبيقات في بيئات تصحيح الأخطاء
إذا أردت، بعد تسجيل تطبيقك في فحص التطبيقات، تشغيل تطبيقك في بيئة لا يصنّفها فحص التطبيقات عادةً على أنّها صالحة، مثل محاكي أثناء التطوير أو من بيئة دمج مستمر (CI)، يمكنك إنشاء إصدار مخصص لتصحيح الأخطاء من تطبيقك يستخدم مقدّم خدمة تصحيح الأخطاء في فحص التطبيقات بدلاً من موفّر إثبات صحة حقيقي.
اطّلِع على استخدام فحص التطبيقات مع مقدّم خدمة تصحيح الأخطاء في تطبيقات Flutter.