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