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