شروع کار بااستفاده از «بررسی برنامه» با reCAPTCHA Enterprise در برنامه‌های Flutter

انتخاب پلاتفرم: iOS+‎ Android‎ Web‎ Flutter‎


این صفحه به شما نشان می‌دهد که چگونه App Check را در برنامه Flutter راه‌اندازی کنید، بااستفاده از ارائه‌دهنده reCAPTCHA Enterprise. App Check کمک می‌کند مطمئن شوید که فقط برنامه شما می‌تواند به منابع پسین پروژه‌تان دسترسی داشته باشد. برای کسب اطلاعات بیشتر، نمای کلی App Check ما را مرور کنید.

App Check به استفاده از کلیدهای reCAPTCHA مبتنی بر امتیاز نیاز دارد که آن را برای کاربران نامرئی می‌کند. این یعنی ارائه‌دهنده reCAPTCHA Enterprise هرگز از کاربران نمی‌خواهد چالش حل کنند.

اگر مورد استفاده شما به ویژگی‌های reCAPTCHA Enterprise که App Check پیاده‌سازی نکرده است نیاز دارد، یا اگر می‌خواهید از App Check با ارائه‌دهنده سفارشی خودتان استفاده کنید، به پیاده‌سازی ارائه‌دهنده سفارشی App Check مراجعه کنید.

۱. راه‌اندازی پروژه Firebase

  1. اگر قبلاً این کار را نکرده‌اید، ‫Firebase را در پروژه Flutter خود نصب و مقداردهی اولیه کنید.

  2. در کنسول Google Cloud، به صفحه «دفاع دربرابر کلاهبرداری» بروید، و برای ارائه‌دهنده reCAPTCHA Enterprise کارهای زیر را انجام دهید:

    1. مطمئن شوید که در پروژه صحیح هستید (انتخاب‌گر پروژه را در بالای صفحه ببینید).

    2. اگر درخواست شد، reCAPTCHA Enterprise API را فعال کنید.

    3. کلیدی براساس پلاتفرم هدف خود ایجاد کنید:

      iOS+‎

      کلیدی از نوع iOS ایجاد کنید و شناسه دسته نرم‌افزاری برنامه‌تان را مشخص کنید (برای مثال، com.example.my_app).

      • مطمئن شوید همان شناسه دسته نرم‌افزاری را وارد می‌کنید که هنگام ایجاد Firebase Apple App در پروژه Firebase خود ارائه کردید. مقدار شناسه دسته نرم‌افزاری حروف‌حساس است.

      • برای App Check، هر شناسه دسته‌ای فقط می‌تواند با یک کلید reCAPTCHA مطابقت داشته باشد.

      Android

      کلید نوع Android ایجاد کنید و نام بسته برنامه خود را مشخص کنید (برای مثال، com.example.my_app).

      • مطمئن شوید همان نام بسته‌ای را وارد می‌کنید که هنگام ایجاد «برنامه Android» در Firebase در پروژه Firebase خود ارائه کردید. مقدار نام بسته حروف‌حساس است.

      • برای App Check، هر نام بسته فقط می‌تواند با یک کلید reCAPTCHA مطابقت داشته باشد.

      وب

      کلید نوع وب ایجاد کنید و هریک از دامنه‌های برنامه‌های وب را مشخص کنید.

      • App Check از برنامه‌های وبی که در بیش‌از ۲۵۰ دامنه ارائه می‌شوند پشتیبانی نمی‌کند.

      • هرگز localhost را به‌عنوان دامنه به کلید reCAPTCHA که در تولید مستقر شده است (یا قرار است مستقر شود) اضافه نکنید.

      • گزینه «استفاده از چالش چارگوش انتخاب» را انتخاب‌نشده رها کنید.

      برای دستورالعمل‌های دقیق، ایجاد کلیدهای reCAPTCHA مبتنی بر امتیاز را ببینید.

    4. هر کلید را یادداشت کنید. باید آن‌ها را به جریان ثبت‌نام در کنسول Firebase اضافه کنید.

  3. در کنسول Firebase، به امنیت > بررسی برنامه بروید.

  4. در زبانه برنامه‌ها، هریک از برنامه‌های پلاتفرم هدف را ثبت کنید تا از App Check با ارائه‌دهنده reCAPTCHA Enterprise استفاده کنند. باید کلیدی را که در کنسول Google Cloud دریافت کرده‌اید ارائه دهید.

  5. اختیاری: زمان بقای کد (TTL) را تنظیم کنید.

    در تنظیمات ثبت برنامه، زمان سفارشی برای زنده بودن (TTL) برای App Check نشان‌های صادرشده توسط ارائه‌دهنده تنظیم کنید. می‌توانید TTL را روی هر مقداری بین ۳۰ دقیقه و ۷ روز تنظیم کنید. هنگام تغییر این مقدار، به مبادله‌های زیر توجه داشته باشید:

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

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

  6. اختیاری: تنظیمات پیشرفته را پیکربندی کنید.

  7. روی ذخیره کردن کلیک کنید.

(اختیاری) پیکربندی تنظیمات پیشرفته

وقتی کاربر برنامه‌تان را باز می‌کند، reCAPTCHA Enterprise سطح ریسک تعامل کاربر را تحت کلید ارزیابی می‌کند و امتیازی بین ۰٫۰ و ۱٫۰ با افزایش‌های ۰٫۱ برمی‌گرداند.

  • امتیاز ۰٫۰ نشان می‌دهد که تعامل خطر بالایی دارد و ممکن است کلاهبردارانه باشد.
  • امتیاز ۱٫۰ نشان می‌دهد که تعامل ریسک پایینی دارد و به احتمال زیاد قانونی است.

App Check به شما امکان می‌دهد آستانه خطر برنامه را پیکربندی کنید تا بتوانید تحمل خود را برای این خطر تنظیم کنید.

برای اکثر موارد استفاده، مقدار آستانه پیش‌فرض ۰٫۵ توصیه می‌شود. اگر مورد استفاده شما نیاز به تنظیم دارد، می‌توانید این مقدار را برای هریک از برنامه‌هایتان در کنسول Firebase پیکربندی کنید (به امنیت > بررسی برنامه بروید). حتماً برخی از ملاحظات مهم درباره پیکربندی آستانه خطر برنامه را در زیر ازهم باز کنید و مرور کنید.

۲. افزودن افزایه App Check به برنامه

برای استفاده از ارائه‌دهنده reCAPTCHA Enterprise، باید افزایه App Check مربوطه را اضافه کنید.

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

    flutter pub add firebase_app_check
    
  2. پس‌از تکمیل، پروژه Flutter خود را بازسازی کنید:

    flutter run
    

۳. مقداردهی اولیه App Check

در برنامه‌تان، باید App Check را قبل‌از استفاده از هر سرویس Firebase دیگری مقداردهی اولیه کنید.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

۴. پایش سنجه‌ها و فعال کردن اجرا

پس‌از راه‌اندازی App Check در برنامه‌تان، توزیع برنامه به‌روزشده را برای کاربرانتان شروع کنید.

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

پایش سنجه‌ها

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

برای کمک به گرفتن این تصمیم، می‌توانید سنجه‌های App Check را برای سرویس‌هایی که استفاده می‌کنید مرور کنید:

فعال کردن اجرای App Check

وقتی متوجه شدید App Check چگونه بر کاربران شما تأثیر می‌گذارد و آماده ادامه دادن بودید، می‌توانید اجرای App Check را فعال کنید:

استفاده از App Check در محیط‌های اشکال‌زدایی

App Check برخی‌از محیط‌ها را نامعتبر طبقه‌بندی می‌کند، مثل درخواست‌های ارسال‌شده از شبیه‌ساز یا میزبان محلی درطول توسعه یا از محیط ادغام مداوم (CI).

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

برای جزئیات بیشتر، استفاده از App Check با ارائه‌دهنده اشکال‌زدایی در برنامه‌های Flutter را ببینید.

قیمت‌گذاری

App Check هربار که برنامه‌تان کد App Check خود را بازآوری می‌کند، ارزیابی‌ای ازجانب شما ایجاد می‌کند تا کد پاسخ کاربر را درستی‌سنجی کند. برای هر ارزیابی ایجادشده فراتر از سهمیه رایگان، هزینه از پروژه Firebase شما کسر خواهد شد. برای جزئیات، به قیمت‌گذاری reCAPTCHA مراجعه کنید.

به‌طور پیش‌فرض، برنامه شما این کد را دو بار در هر ۱ ساعت بازآوری می‌کند. برای کنترل اینکه برنامه شما هر چند وقت یک‌بار نشان‌های App Check را بازآوری کند (و در نتیجه هر چند وقت یک‌بار ارزیابی‌های جدید ایجاد شود)، می‌توانید «زمان زنده بودن نشان» را پیکربندی کنید.