查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

فعال کردن بررسی برنامه در برنامه‌های Flutter

این صفحه به شما نشان می‌دهد که چگونه می‌توانید App Check را در یک برنامه Flutter با استفاده از ارائه‌دهندگان پیش‌فرض فعال کنید: SafetyNet در Android، Device Check در پلتفرم‌های Apple، و reCAPTCHA v3 در وب. وقتی برنامه بررسی را فعال می‌کنید، مطمئن می‌شوید که فقط برنامه شما می‌تواند به منابع Firebase پروژه شما دسترسی داشته باشد. مروری بر این ویژگی را ببینید.

1. پروژه Firebase خود را راه اندازی کنید

  1. اگر قبلاً این کار را نکرده اید، FlutterFire را نصب و مقداردهی اولیه کنید.

  2. برنامه‌های خود را برای استفاده از App Check با ارائه‌دهندگان SafetyNet، Device Check و reCAPTCHA در قسمت تنظیمات پروژه > بررسی برنامه در کنسول Firebase ثبت کنید.

    معمولاً باید همه برنامه‌های پروژه خود را ثبت کنید، زیرا پس از فعال کردن اجرای یک محصول Firebase، فقط برنامه‌های ثبت‌شده می‌توانند به منابع پشتیبان محصول دسترسی داشته باشند.

  3. اختیاری : در تنظیمات ثبت برنامه، زمان سفارشی (TTL) را برای نشانه‌های بررسی برنامه صادر شده توسط ارائه‌دهنده تنظیم کنید. می توانید TTL را روی هر مقداری بین 30 دقیقه تا 7 روز تنظیم کنید. هنگام تغییر این مقدار، به معاوضه های زیر توجه داشته باشید:

    • امنیت: TTL‌های کوتاه‌تر امنیت قوی‌تری را فراهم می‌کنند، زیرا پنجره‌ای را کاهش می‌دهد که در آن توکن لو رفته یا رهگیری شده توسط مهاجم مورد سوء استفاده قرار می‌گیرد.
    • عملکرد: TTLهای کوتاهتر به این معنی است که برنامه شما به دفعات بیشتری گواهی را انجام می دهد. از آنجایی که فرآیند تأیید برنامه هر بار که انجام می شود به درخواست های شبکه تاخیر اضافه می کند، یک TTL کوتاه می تواند بر عملکرد برنامه شما تأثیر بگذارد.
    • سهمیه و هزینه: TTLهای کوتاهتر و تأیید مجدد مکرر سهمیه شما را سریعتر از بین می برد و برای خدمات پولی، احتمالاً هزینه بیشتری دارد. به سهمیه ها و محدودیت ها مراجعه کنید.

    TTL پیش فرض برای اکثر برنامه ها معقول است. توجه داشته باشید که کتابخانه App Check توکن ها را تقریباً با نصف مدت زمان TTL تازه می کند.

2. کتابخانه App Check را به برنامه خود اضافه کنید

  1. از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه اجرا کنید:

    flutter pub add firebase_app_check
    
  2. پس از تکمیل، برنامه 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(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',
  );
  runApp(App());
}

هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.

برنامه کلاینت به‌روزرسانی‌شده، به همراه هر درخواستی که به Firebase می‌کند، نشانه‌های App Check را ارسال می‌کند، اما محصولات Firebase تا زمانی که اعمال را در بخش App Check کنسول Firebase فعال نکنید، نیازی به معتبر بودن توکن‌ها ندارند. برای جزئیات بیشتر به دو بخش بعدی مراجعه کنید.

4. معیارهای درخواست را رصد کنید

اکنون که برنامه به‌روزرسانی شده شما در دست کاربران است، می‌توانید اجرای App Check را برای محصولات Firebase که استفاده می‌کنید فعال کنید. با این حال، قبل از انجام این کار، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود.

پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage

ابزار مهمی که می‌توانید برای اتخاذ این تصمیم برای پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage استفاده کنید، صفحه معیارهای درخواست بررسی برنامه است.

برای مشاهده معیارهای درخواست بررسی برنامه برای یک محصول، بخش تنظیمات پروژه > بررسی برنامه را در کنسول Firebase باز کنید. مثلا:

نماگرفت صفحه معیارهای بررسی برنامه

معیارهای درخواست برای هر محصول به چهار دسته تقسیم می شوند:

  • درخواست‌های تایید شده آنهایی هستند که دارای نشانه معتبر App Check هستند. پس از فعال کردن اجرای بررسی برنامه، فقط درخواست‌های این دسته موفق خواهند شد.

  • درخواست‌های مشتری منسوخ شده آنهایی هستند که کد App Check را ندارند. این درخواست‌ها ممکن است از یک نسخه قدیمی‌تر Firebase SDK قبل از گنجاندن App Check در برنامه باشد.

  • درخواست‌های مبدأ ناشناخته آن‌هایی هستند که کد App Check را ندارند و به نظر نمی‌رسد از Firebase SDK آمده باشند. اینها ممکن است از درخواست‌هایی باشد که با کلیدهای API به سرقت رفته یا درخواست‌های جعلی که بدون Firebase SDK انجام شده‌اند.

  • درخواست‌های نامعتبر درخواست‌هایی هستند که دارای یک رمز برنامه بررسی نامعتبر هستند، که ممکن است از یک کلاینت غیر معتبر باشد که سعی در جعل هویت برنامه شما دارد، یا از محیط‌های شبیه‌سازی شده.

توزیع این دسته‌ها برای برنامه شما باید زمانی را که تصمیم به فعال کردن اعمال می‌کنید به شما اطلاع دهد. در اینجا چند دستورالعمل وجود دارد:

  • اگر تقریباً تمام درخواست‌های اخیر از مشتریان تأیید شده است، برای شروع محافظت از منابع باطن خود، اجرای را فعال کنید.

  • اگر بخش قابل‌توجهی از درخواست‌های اخیر از کلاینت‌هایی هستند که احتمالاً قدیمی هستند، برای جلوگیری از ایجاد مزاحمت در کاربران، قبل از فعال کردن اعمال، منتظر بمانید تا کاربران بیشتری برنامه شما را به‌روزرسانی کنند. اجرای بررسی برنامه در یک برنامه منتشر شده، نسخه های قبلی برنامه را که با SDK بررسی برنامه ادغام نشده اند، خراب می کند.

  • اگر برنامه شما هنوز راه اندازی نشده است، باید فوراً اجرای بررسی برنامه را فعال کنید، زیرا هیچ کلاینت قدیمی در حال استفاده نیست.

توابع ابری

برای توابع Cloud، می‌توانید با بررسی گزارش‌های عملکردهای خود، معیارهای App Check را دریافت کنید. هر فراخوانی یک تابع قابل فراخوانی یک ورودی گزارش ساختار یافته مانند مثال زیر منتشر می کند:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

می‌توانید این معیارها را در Google Cloud Console با ایجاد یک سنجه شمارنده مبتنی بر گزارش‌ها با فیلتر متریک زیر تجزیه و تحلیل کنید:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

با استفاده از فیلد jsonPayload.verifications.appCheck ، متریک را برچسب گذاری کنید.

5. اجرا را فعال کنید

برای فعال کردن اعمال، دستورالعمل‌های مربوط به هر محصول را در زیر دنبال کنید. هنگامی که اجرای یک محصول را فعال کنید، همه درخواست‌های تأیید نشده برای آن محصول رد می‌شوند.

پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage

برای فعال کردن اعمال برای پایگاه داده Realtime، Cloud Firestore (iOS و Android) و Cloud Storage:

  1. بخش تنظیمات پروژه > بررسی برنامه را در کنسول Firebase باز کنید.

  2. نمای معیارهای محصولی را که می‌خواهید اجرای آن را فعال کنید، گسترش دهید.

  3. روی Enforce کلیک کنید و انتخاب خود را تایید کنید.

توجه داشته باشید که تا 10 دقیقه پس از فعال کردن اجرای اعمال می‌تواند طول بکشد.

توابع ابری

به فعال کردن اجرای بررسی برنامه برای عملکردهای ابری مراجعه کنید.