از App Check برای ایمن کردن کلید API خود استفاده کنید (جدید)

Firebase App Check با مسدود کردن ترافیکی که از منابعی غیر از برنامه‌های قانونی می‌آید، از تماس‌های برنامه شما به پلتفرم Google Maps محافظت می‌کند. این کار را با بررسی نشانه ای از یک ارائه دهنده گواهی مانند reCAPTCHA Enterprise انجام می دهد. ادغام برنامه‌هایتان با App Check به محافظت در برابر درخواست‌های مخرب کمک می‌کند، بنابراین برای تماس‌های API غیرمجاز هزینه‌ای از شما دریافت نمی‌شود.

آیا App Check برای من مناسب است؟

App Check در اکثر موارد توصیه می شود، اما در موارد زیر به بررسی برنامه نیازی نیست یا پشتیبانی نمی شود:

  • برنامه های خصوصی یا آزمایشی اگر برنامه شما برای عموم قابل دسترسی نیست، برنامه بررسی لازم نیست.
  • اگر برنامه شما فقط از سرور به سرور استفاده می شود، بررسی برنامه مورد نیاز نیست. با این حال، اگر سروری که با GMP ارتباط برقرار می کند توسط مشتریان عمومی (مانند برنامه های تلفن همراه) استفاده می شود، برای محافظت از آن سرور به جای GMP از App Check استفاده کنید.

مروری بر مراحل اجرا

در سطح بالا، این مراحلی هستند که برای یکپارچه کردن برنامه خود با App Check دنبال خواهید کرد:

  1. Firebase را به برنامه خود اضافه کنید.
  2. کتابخانه App Check را اضافه و مقداردهی اولیه کنید.
  3. ارائه دهنده توکن را به برنامه خود اضافه کنید.
  4. API های Places و App Check را راه اندازی کنید.
  5. اشکال زدایی را فعال کنید.
  6. درخواست های برنامه خود را نظارت کنید و در مورد اجرا تصمیم بگیرید.

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

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

ملاحظات هنگام برنامه ریزی یکپارچه سازی App Check

در اینجا مواردی وجود دارد که باید هنگام برنامه ریزی ادغام خود در نظر بگیرید:

  • یکی از ارائه دهندگان گواهی که ما توصیه می کنیم، reCAPTCHA Enterprise برای بیش از 10000 ارزیابی در ماه هزینه دریافت می کند.

    ارائه‌دهنده گواهینامه دیگری که توصیه می‌کنیم، reCAPTCHA v3 دارای یک سهمیه است که پس از آن ترافیک ارزیابی نمی‌شود.

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

  • کاربران برنامه شما در هنگام راه اندازی با تاخیر مواجه می شوند. با این حال، پس از آن، هر گونه تأیید مجدد دوره ای در پس زمینه رخ می دهد و کاربران دیگر نباید تاخیری را تجربه کنند. میزان دقیق تاخیر در راه اندازی به ارائه دهنده گواهی انتخابی شما بستگی دارد.

    مدت زمانی که کد App Check معتبر است ( زمان زندگی یا TTL) تعداد دفعات تأیید مجدد را تعیین می کند. این مدت زمان را می توان در کنسول Firebase پیکربندی کرد. تأیید مجدد زمانی اتفاق می افتد که تقریباً نیمی از TTL سپری شده باشد. برای اطلاعات بیشتر، به اسناد Firebase برای ارائه دهنده گواهی خود مراجعه کنید.

برنامه خود را با App Check یکپارچه کنید

پیش نیازها و الزامات

مرحله 1: Firebase را به برنامه خود اضافه کنید

دستورالعمل‌های موجود در اسناد برنامه‌نویس Firebase را دنبال کنید تا Firebase را به برنامه خود اضافه کنید.

مرحله 2: کتابخانه App Check را اضافه کنید و App Check را مقداردهی اولیه کنید

Firebase دستورالعمل هایی را برای هر ارائه دهنده گواهی پیش فرض ارائه می دهد. این دستورالعمل ها به شما نشان می دهد که چگونه یک پروژه Firebase را راه اندازی کنید و کتابخانه App Check را به برنامه خود اضافه کنید. نمونه کدهای ارائه شده را برای مقداردهی اولیه بررسی برنامه دنبال کنید.

مرحله 3: بارگیری کتابخانه های API Maps JS

  1. همانطور که در قطعه زیر نشان داده شده است، کتابخانه های هسته، Maps و Places را بارگیری کنید. برای اطلاعات بیشتر و دستورالعمل‌ها، به مستندات Maps JavaScript API Place Class مراجعه کنید.

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
      const {Place} = await google.maps.importLibrary('places');
    }  

مرحله 4: API های Places و App Check را راه اندازی کنید

  1. با استفاده از پیکربندی ارائه شده توسط کنسول Firebase، بررسی برنامه را آغاز کنید.
  2. اطمینان حاصل کنید که درخواست‌های Maps JS API با نشانه‌های App Check همراه است:
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
        const {Place} = await google.maps.importLibrary('places');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Make a Places JS request
        const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'});
        await place.fetchFields({fields: ['*']});
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

مرحله 5: فعال کردن اشکال زدایی (اختیاری)

اگر می خواهید برنامه خود را به صورت محلی توسعه و آزمایش کنید، یا آن را در محیط یکپارچه سازی پیوسته (CI) اجرا کنید، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از رمز اشکال زدایی برای به دست آوردن نشانه های معتبر App Check استفاده می کند. این به شما امکان می دهد از ارائه دهندگان گواهی واقعی در ساخت اشکال زدایی خودداری کنید.

برای آزمایش برنامه خود به صورت محلی:

  • ارائه دهنده اشکال زدایی را برای اهداف توسعه فعال کنید.
  • شما یک UUID4 تصادفی تولید شده به صورت خودکار (که در مستندات بررسی برنامه به نام _debug token_ نامیده می شود) از گزارش های اشکال زدایی SDK دریافت خواهید کرد. این توکن را به کنسول Firebase اضافه کنید.
  • برای اطلاعات و دستورالعمل‌های بیشتر، به مستندات بررسی برنامه مراجعه کنید.

برای اجرای برنامه خود در محیط CI:

  • یک UUID4 تصادفی از کنسول Firebase ایجاد کنید.
  • UUID4 را به عنوان نشانه اشکال‌زدایی اضافه کنید و سپس آن را در یک فروشگاه مخفی کپی کنید که آزمایش‌های CI در هر اجرای آزمایشی به آن دسترسی خواهند داشت.
  • برای اطلاعات و دستورالعمل‌های بیشتر، به مستندات بررسی برنامه مراجعه کنید.

مرحله 6: درخواست های برنامه خود را نظارت کنید و در مورد اجرا تصمیم بگیرید

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

برای اطلاعات و دستورالعمل‌های بیشتر به مستندات بررسی برنامه Firebase مراجعه کنید.