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

انتخاب پلتفرم: iOS+ اندروید وب فلاتر


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

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

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

۱. پروژه فایربیس خود را راه‌اندازی کنید

  1. اگر هنوز Firebase را نصب نکرده‌اید، آن را در پروژه Flutter خود نصب و راه‌اندازی کنید .

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

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

    2. در صورت درخواست، رابط برنامه‌نویسی کاربردی reCAPTCHA Enterprise را فعال کنید.

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

      آی‌او‌اس+

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

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

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

      اندروید

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

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

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

      وب

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

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

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

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

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

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

  3. در کنسول Firebase ، به مسیر Security > App Check بروید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    flutter run
    

۳. App Check

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

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 در برنامه خود تنظیم کردید، شروع به توزیع برنامه به‌روزرسانی‌شده بین کاربران خود کنید.

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

نظارت بر معیارها

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

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

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

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

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

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

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

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

قیمت‌گذاری

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

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

،
انتخاب پلتفرم: iOS+ اندروید وب فلاتر


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

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

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

۱. پروژه فایربیس خود را راه‌اندازی کنید

  1. اگر هنوز Firebase را نصب نکرده‌اید، آن را در پروژه Flutter خود نصب و راه‌اندازی کنید .

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

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

    2. در صورت درخواست، رابط برنامه‌نویسی کاربردی reCAPTCHA Enterprise را فعال کنید.

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

      آی‌او‌اس+

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

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

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

      اندروید

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

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

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

      وب

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

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

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

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

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

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

  3. در کنسول Firebase ، به مسیر Security > App Check بروید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    flutter run
    

۳. App Check

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

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 در برنامه خود تنظیم کردید، شروع به توزیع برنامه به‌روزرسانی‌شده بین کاربران خود کنید.

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

نظارت بر معیارها

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

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

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

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

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

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

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

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

قیمت‌گذاری

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

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

،
انتخاب پلتفرم: iOS+ اندروید وب فلاتر


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

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

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

۱. پروژه فایربیس خود را راه‌اندازی کنید

  1. اگر هنوز Firebase را نصب نکرده‌اید، آن را در پروژه Flutter خود نصب و راه‌اندازی کنید .

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

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

    2. در صورت درخواست، رابط برنامه‌نویسی کاربردی reCAPTCHA Enterprise را فعال کنید.

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

      آی‌او‌اس+

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

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

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

      اندروید

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

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

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

      وب

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

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

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

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

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

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

  3. در کنسول Firebase ، به مسیر Security > App Check بروید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    flutter run
    

۳. App Check

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

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 در برنامه خود تنظیم کردید، شروع به توزیع برنامه به‌روزرسانی‌شده بین کاربران خود کنید.

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

نظارت بر معیارها

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

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

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

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

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

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

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

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

قیمت‌گذاری

App Check creates an assessment on your behalf to validate the user's response token each time your app refreshes its App Check token. Your Firebase project will be charged for each assessment created above the no-cost quota. For details, see reCAPTCHA pricing .

By default, your app will refresh this token twice every 1 hour . To control how frequently your app refreshes App Check tokens (and thus how frequently new assessments are created), you can configure the token TTL .

،
Select platform: iOS+ Android Web Flutter


This page shows you how to set up App Check in a Flutter app, using the reCAPTCHA Enterprise provider. App Check helps to ensure that only your app can access your project's backend resources. To learn more, review our overview of App Check .

App Check requires the use of score-based reCAPTCHA keys, which makes it invisible to users. This means that the reCAPTCHA Enterprise provider won't require users to solve a challenge at any time.

If your use case requires reCAPTCHA Enterprise features not implemented by App Check , or if you want to use App Check with your own custom provider, see Implement a custom App Check provider .

1. Set up your Firebase project

  1. If you haven't already, install and initialize Firebase in your Flutter project .

  2. In the Google Cloud console, go to the Fraud Defense page , and do the following for the reCAPTCHA Enterprise provider:

    1. Make sure that you're in the correct project (see the project picker at the top of the screen).

    2. If prompted, enable the reCAPTCHA Enterprise API.

    3. Create a key based on your target platform:

      iOS+

      Create an iOS -type key, and specify your app's bundle ID (for example, com.example.my_app ).

      • Make sure that you enter the same bundle ID that you provided when you created your Firebase Apple App in your Firebase project. The bundle ID value is case-sensitive.

      • For App Check , each bundle ID can only correspond to a single reCAPTCHA key.

      اندروید

      Create an Android -type key, and specify your app's package name (for example, com.example.my_app ).

      • Make sure that you enter the same package name that you provided when you created your Firebase Android App in your Firebase project. The package name value is case-sensitive.

      • For App Check , each package name can only correspond to a single reCAPTCHA key.

      وب

      Create a Web -type key, and specify each of the domains for your web apps.

      • App Check does not support web apps that serve on more than 250 domains.

      • Never add localhost as a domain to a reCAPTCHA key that is deployed to (or is going to be deployed to) production.

      • Leave the "Use checkbox challenge" option unselected .

      For detailed instructions, see Create score-based reCAPTCHA keys .

    4. Take note of each key. You'll need to add them into the registration flow in the Firebase console.

  3. In the Firebase console, navigate to Security > App Check .

  4. In the Apps tab, register each of your target platform apps to use App Check with the reCAPTCHA Enterprise provider. You'll need to provide the key you got in the Google Cloud console.

  5. Optional : Set the token time to live (TTL).

    In the app registration settings, set a custom time to live (TTL) for App Check tokens issued by the provider. You can set the TTL to any value between 30 minutes and 7 days. When changing this value, be aware of the following tradeoffs:

    • Security: Shorter TTLs provide stronger security, because it reduces the window in which a leaked or intercepted token can be abused by an attacker.
    • Performance: Shorter TTLs mean your app will perform attestation more frequently. Because the app attestation process adds latency to network requests every time it's performed, a short TTL can impact the performance of your app.
    • Quota and cost: Shorter TTLs and frequent re-attestation deplete your quota faster, and for paid services, potentially cost more. See Quotas & limits .

    The default TTL of 1 hour is reasonable for most apps. Note that the App Check library refreshes tokens at approximately half the TTL duration.

  6. Optional : Configure advanced settings.

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

(Optional) Configure advanced settings

When a user opens your app, reCAPTCHA Enterprise evaluates the level of risk the user interaction under the key poses, and returns a score between 0.0 and 1.0, in increments of 0.1.

  • A score of 0.0 indicates that the interaction poses high risk and might be fraudulent.
  • A score of 1.0 indicates that the interaction poses low risk and is very likely legitimate.

App Check lets you configure an app risk threshold so you can adjust your tolerance for this risk.

For most use cases, the default threshold value of 0.5 is recommended. If your use case requires adjustment, you can configure this value for each of your apps in the Firebase console (go to Security > App Check ). Make sure to expand and review some important considerations about configuring the app risk threshold below.

2. Add the App Check plugin to your app

To use the reCAPTCHA Enterprise provider, you must add the corresponding App Check plugin.

  1. From the root of your Flutter project, run the following command to install the plugin:

    flutter pub add firebase_app_check
    
  2. Once complete, rebuild your Flutter project:

    flutter run
    

3. Initialize App Check

In your app, you need to initialize App Check before you use any other Firebase services.

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());
}

4. Monitor metrics and enable enforcement

After you've set up App Check in your app, start distributing the updated app to your users.

The updated client app will begin sending App Check tokens along with every request it makes to Firebase. However, App Check won't block requests with invalid tokens until App Check is enforced .

نظارت بر معیارها

Before you enable enforcement , make sure that doing so won't disrupt your existing legitimate users. However, if you're seeing suspicious use of your app resources, you might want to enable enforcement sooner.

To help make this decision, you can review App Check metrics for the services you use:

Enable App Check enforcement

When you understand how App Check will affect your users and you're ready to proceed, you can enable App Check enforcement:

Use App Check in debug environments

App Check classifies some environments as invalid, such as requests from an emulator / simulator or localhost during development or from a continuous integration (CI) environment.

To run your app in these types of environments after App Check is enforced, you need to create a debug build of your app that uses the App Check debug provider instead of a production attestation provider.

For more details, see Use App Check with the debug provider in Flutter apps .

قیمت‌گذاری

App Check creates an assessment on your behalf to validate the user's response token each time your app refreshes its App Check token. Your Firebase project will be charged for each assessment created above the no-cost quota. For details, see reCAPTCHA pricing .

By default, your app will refresh this token twice every 1 hour . To control how frequently your app refreshes App Check tokens (and thus how frequently new assessments are created), you can configure the token TTL .