برای ایمنسازی کلید API خود از App Check استفاده کنید
Firebase App Check با مسدود کردن ترافیکی که از منابعی غیر از برنامههای قانونی میآید، از تماسهای برنامه شما به پلتفرم Google Maps محافظت میکند. این کار را با بررسی وجود توکن از یک ارائهدهنده گواهی مانند reCAPTCHA Enterprise انجام میدهد. ادغام برنامههای شما با App Check به محافظت در برابر درخواستهای مخرب کمک میکند، بنابراین برای تماسهای API غیرمجاز هزینهای از شما دریافت نمیشود.
آیا اپ چک برای من مناسب است؟
در بیشتر موارد، App Check توصیه میشود، با این حال در موارد زیر نیازی به آن نیست یا پشتیبانی نمیشود:
- برنامههای خصوصی یا آزمایشی. اگر برنامه شما به صورت عمومی قابل دسترسی نیست، نیازی به بررسی برنامه نیست.
- اگر برنامه شما فقط به صورت سرور به سرور استفاده میشود، نیازی به App Check نیست. با این حال، اگر سروری که با GMP ارتباط برقرار میکند توسط کلاینتهای عمومی (مانند برنامههای تلفن همراه) استفاده میشود، استفاده از App Check را برای محافظت از آن سرور به جای GMP در نظر بگیرید.
مرور کلی مراحل اجرا
در سطح بالا، این مراحلی است که برای ادغام برنامه خود با App Check دنبال خواهید کرد:
- فایربیس را به برنامه خود اضافه کنید.
- کتابخانه App Check را اضافه و مقداردهی اولیه کنید.
- ارائه دهنده توکن را به برنامه خود اضافه کنید.
- APIهای Maps JS و App Check را مقداردهی اولیه کنید.
- اشکالزدایی را فعال کنید.
- درخواستهای برنامه خود را رصد کنید و در مورد اجرای آنها تصمیم بگیرید.
پس از ادغام با App Check، میتوانید معیارهای ترافیک backend را در کنسول Firebase مشاهده کنید. این معیارها، درخواستها را بر اساس اینکه آیا با یک توکن معتبر App Check همراه هستند یا خیر، تفکیک میکنند. برای اطلاعات بیشتر به مستندات Firebase App Check مراجعه کنید.
وقتی مطمئن شدید که بیشتر درخواستها از منابع قانونی هستند و کاربران به آخرین نسخه برنامه شما که شامل پیادهسازی App Check شما میشود، بهروزرسانی شدهاند، میتوانید اجرای قانون را فعال کنید. پس از فعال شدن اجرای قانون، App Check تمام ترافیک بدون توکن معتبر App Check را رد میکند.
ملاحظات هنگام برنامهریزی ادغام App Check
در اینجا مواردی وجود دارد که باید هنگام برنامهریزی برای ادغام خود در نظر بگیرید:
- یکی از ارائهدهندگان گواهی که ما توصیه میکنیم، reCAPTCHA Enterprise است که برای بیش از 10،000 ارزیابی در ماه هزینه دریافت میکند.
ارائهدهندهی گواهی دیگری که توصیه میکنیم، reCAPTCHA نسخه ۳ ، سهمیهای دارد که پس از آن ترافیک ارزیابی نخواهد شد.
شما میتوانید از یک ارائهدهنده گواهی سفارشی استفاده کنید، اگرچه این یک مورد استفاده پیشرفته است. برای اطلاعات بیشتر به مستندات App Check مراجعه کنید.
کاربران برنامه شما در هنگام راهاندازی با کمی تأخیر مواجه خواهند شد. با این حال، پس از آن، هرگونه تأیید مجدد دورهای در پسزمینه رخ خواهد داد و کاربران دیگر نباید هیچ تأخیری را تجربه کنند. میزان دقیق تأخیر در هنگام راهاندازی به ارائهدهنده تأییدیهای که انتخاب میکنید بستگی دارد.
مدت زمانی که توکن App Check معتبر است ( زمان حیات یا TTL) تعداد دفعات تأیید مجدد را تعیین میکند. این مدت زمان را میتوان در کنسول Firebase پیکربندی کرد. تأیید مجدد زمانی اتفاق میافتد که تقریباً نیمی از TTL سپری شده باشد. برای اطلاعات بیشتر، به اسناد Firebase مربوط به ارائهدهنده تأیید خود مراجعه کنید.
برنامه خود را با App Check ادغام کنید
پیشنیازها و الزامات
- برنامهای که آخرین نسخه هفتگی یا فصلی API و کتابخانههای اصلی Maps JS روی آن بارگذاری شده باشد.
- یک پروژه ابری با API نقشههای JS فعال.
- شما باید مالک برنامه در Cloud Console باشید.
- شما به شناسه پروژه برنامه از Cloud Console نیاز خواهید داشت.
مرحله ۱: اضافه کردن فایربیس به برنامه
برای افزودن Firebase به برنامه خود ، دستورالعملهای موجود در مستندات توسعهدهندگان Firebase را دنبال کنید.
مرحله ۲: کتابخانه App Check را اضافه کنید و App Check را مقداردهی اولیه کنید
فایربیس برای هر ارائهدهندهی گواهی پیشفرض، دستورالعملهایی ارائه میدهد. این دستورالعملها به شما نشان میدهند که چگونه یک پروژهی فایربیس راهاندازی کنید و کتابخانهی App Check را به برنامهی خود اضافه کنید. برای راهاندازی اولیهی App Check، نمونههای کد ارائه شده را دنبال کنید.
مرحله 3: بارگذاری کتابخانههای API JS نقشهها
کتابخانههای core و Maps را همانطور که در قطعه کد زیر نشان داده شده است، بارگذاری کنید. برای اطلاعات و دستورالعملهای بیشتر، به مستندات Maps JavaScript API مراجعه کنید.
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); }
مرحله ۴: مقداردهی اولیه APIهای Maps و App Check
- با استفاده از پیکربندی ارائه شده توسط کنسول Firebase، App Check را مقداردهی اولیه کنید.
- اطمینان حاصل کنید که درخواستهای ارسالی به API نقشههای JS با توکنهای App Check همراه هستند:
import {initializeApp} from 'firebase/app'; import { getToken, initializeAppCheck, ReCaptchaEnterpriseProvider, } from 'firebase/app-check'; async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); 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); // Load a map map = new Map(document.getElementById("map"), { center: { lat: 37.4161493, lng: -122.0812166 }, zoom: 8, }); }
مرحله ۵: فعال کردن اشکالزدایی (اختیاری)
اگر میخواهید برنامه خود را به صورت محلی توسعه داده و آزمایش کنید، یا آن را در یک محیط یکپارچهسازی مداوم (CI) اجرا کنید، میتوانید یک نسخه اشکالزدایی از برنامه خود ایجاد کنید که از یک رمز اشکالزدایی برای به دست آوردن توکنهای معتبر بررسی برنامه استفاده میکند. این به شما امکان میدهد از استفاده از ارائهدهندگان گواهی واقعی در نسخه اشکالزدایی خود اجتناب کنید.
برای تست برنامه خود به صورت محلی:
- ارائه دهنده اشکال زدایی را برای اهداف توسعه فعال کنید.
- شما یک UUID4 تصادفی که به طور خودکار تولید میشود (که در مستندات App Check با نام _debug token_ شناخته میشود) را از گزارشهای اشکالزدایی SDK دریافت خواهید کرد. این توکن را به کنسول Firebase اضافه کنید.
- برای اطلاعات و دستورالعملهای بیشتر، به مستندات App Check مراجعه کنید.
برای اجرای برنامه خود در محیط CI:
- یک UUID4 تصادفی از کنسول Firebase تولید کنید.
- UUID4 را به عنوان یک توکن اشکالزدایی اضافه کنید و سپس آن را در یک مخزن مخفی کپی کنید که تستهای CI در هر اجرای تست به آن دسترسی خواهند داشت.
- برای اطلاعات و دستورالعملهای بیشتر، به مستندات App Check مراجعه کنید.
مرحله ۶: درخواستهای برنامه خود را رصد کنید و در مورد اجرای آنها تصمیم بگیرید
قبل از شروع اجرای قانون، باید مطمئن شوید که کاربران قانونی برنامه خود را مختل نمیکنید. برای انجام این کار، به صفحه معیارهای بررسی برنامه مراجعه کنید تا ببینید چند درصد از ترافیک برنامه شما تأیید شده، قدیمی یا غیرقانونی است. وقتی متوجه شدید که اکثر ترافیک شما تأیید شده است، میتوانید اجرای قانون را فعال کنید.
برای اطلاعات و دستورالعملهای بیشتر، به مستندات Firebase App Check مراجعه کنید.