شروع کار بااستفاده از «بررسی برنامه» با 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 در پروژه 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 پیش‌فرض ۱ ساعت برای اکثر برنامه‌ها معقول است. توجه داشته باشید که کتابخانه 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 را بازآوری کند (و در نتیجه هر چند وقت یک‌بار ارزیابی‌های جدید ایجاد شود)، می‌توانید «زمان زنده بودن نشان» را پیکربندی کنید.