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

انتخاب پلاتفرم: iOS+ Android وب 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 کوتاه‌تر و گواهی مجدد مکرر سهمیه شما را سریع‌تر تمام می‌کند و برای سرویس‌های پولی، احتمالاً هزینه بیشتری دارد. سهمیه‌ها و محدودیت‌ها را ببینید.

    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 توسط برنامه‌تان (و درنتیجه تعداد دفعات ایجاد ارزیابی‌های جدید)، می‌توانید TTL ژتون را پیکربندی کنید.