برنامهها و پروژههایی که از APIها و SDKهای پلتفرم Google Maps استفاده میکنند باید از کلیدهای API یا در صورت پشتیبانی از OAuth 2.0 برای احراز هویت استفاده کنند.
این بهترین روشها به شما نشان میدهد که چگونه دسترسی به پلتفرم Maps خود را ایمن کنید.
اگر می خواهید از OAuth 2.0 برای مجوز دادن به ترافیک سرور به سرور استفاده کنید، به دنبال موضوع OAuth در اسناد API خود بگردید. برای جزئیات بیشتر به استفاده از OAuth برای برنامه های سمت سرور مراجعه کنید.
علاوه بر اعمال محدودیتهای کلیدی برنامهها و API، هر گونه اقدامات امنیتی را که برای محصولات خاص پلتفرم Google Maps اعمال میشود، دنبال کنید. برای مثال، Maps JavaScript API زیر را در برنامههای توصیهشده و محدودیتهای API ببینید.
اگر کلیدهای API شما از قبل در حال استفاده هستند، توصیههای زیر را در قسمت اگر کلید API در حال استفاده را محدود میکنید مرور کنید.
برای جزئیات بیشتر درباره امضای دیجیتال، پشتیبانی شده توسط Maps Static API و Street View Static API، به راهنمای امضای دیجیتال مراجعه کنید.
بهترین شیوه های توصیه شده
برای افزایش امنیت و جلوگیری از دریافت صورتحساب برای استفاده غیرمجاز، این بهترین شیوههای امنیتی API را برای همه APIها، SDKها یا سرویسهای پلتفرم Google Maps دنبال کنید:
برای همه کاربردهای کلید API توصیه می شود
برای هر برنامه از کلیدهای API جداگانه استفاده کنید
کلیدهای استفاده نشده API را حذف کنید
استفاده از کلید API خود را بررسی کنید
هنگام چرخاندن کلیدهای API مراقب باشید
استفاده از سمت سرویس گیرنده و سمت سرور را به پروژه های جداگانه تقسیم کنید
غیرفعال کردن خدمات استفاده نشده
توصیه های اضافی برای برنامه های سمت مشتری
از SDK های سمت سرویس گیرنده استفاده کنید
تماس های سرویس وب سمت سرویس گیرنده ایمن
توصیه های اضافی برای وب سایت ها یا برنامه های سمت سرویس گیرنده با استفاده از Static Web API
از استفاده Static Web API محافظت کنید
توصیه های اضافی برای برنامه های سمت سرور با استفاده از خدمات وب
از کلیدهای API سرویس وب محافظت کنید
از OAuth برای برنامه های سمت سرور استفاده کنید
اگر یک کلید API در حال استفاده را محدود یا می چرخانید
قبل از اینکه کلید API را تغییر دهید، میزان استفاده از کلید API خود را بررسی کنید این مرحله به ویژه در صورتی مهم است که در حال اضافه کردن محدودیتهایی برای کلیدی هستید که از قبل در یک برنامه تولیدی استفاده میشود.
بعد از اینکه کلید را تغییر دادید، در صورت نیاز، تمام برنامه های خود را با کلیدهای API جدید به روز کنید.
اگر کلید API شما در معرض خطر قرار نگرفته است و به طور فعال مورد سوء استفاده قرار نگرفته است، می توانید برنامه های خود را با سرعت دلخواه خود به چندین کلید API جدید منتقل کنید، تا زمانی که فقط یک نوع ترافیک را مشاهده نکنید، کلید API اصلی دست نخورده باقی بماند، و کلید API می تواند با خیال راحت با یک نوع محدودیت برنامه بدون ایجاد اختلالات ناخواسته در سرویس محدود شود.
برای دستورالعملهای بیشتر، به انتقال به چند کلید API مراجعه کنید.
قبل از اینکه بخواهید کلید قدیمی را محدود یا حذف کنید، استفاده را در طول زمان نظارت کنید و ببینید چه زمانی APIهای خاص، انواع پلتفرم و دامنهها از کلید API قدیمی خارج شدهاند. برای اطلاعات بیشتر، به گزارش و نظارت و معیارها مراجعه کنید
اگر کلید API شما به خطر افتاده است، میخواهید سریعتر حرکت کنید تا کلید API خود را ایمن کنید و سوء استفاده را متوقف کنید. در برنامههای Android و iOS، تا زمانی که مشتریان برنامههای خود را بهروزرسانی کنند، کلیدها تعویض نمیشوند. بهروزرسانی یا جایگزینی کلیدها در صفحات وب یا در برنامههای سمت سرور بسیار سادهتر است، اما ممکن است همچنان به برنامهریزی دقیق و کار سریع نیاز داشته باشد.
برای اطلاعات بیشتر، به مدیریت استفاده غیرمجاز از یک کلید API مراجعه کنید.
اطلاعات بیشتر
محدودیت های برنامه و API توصیه شده
کلیدهای API خود را محدود کنید
بهترین روش این است که همیشه کلیدهای API خود را با یک نوع محدودیت برنامه و یک یا چند محدودیت API محدود کنید. برای محدودیتهای پیشنهادی توسط سرویس API، SDK یا جاوا اسکریپت، به برنامه توصیهشده و محدودیتهای API در زیر مراجعه کنید.
محدودیتهای برنامه میتوانید استفاده از یک کلید API را به پلتفرمهای خاصی محدود کنید: برنامههای Android یا iOS، یا وبسایتهای خاص برای برنامههای سمت سرویس گیرنده، یا آدرسهای IP خاص یا زیرشبکههای CIDR برای برنامههای سمت سرور که تماسهای REST API سرویس وب را صادر میکنند.
شما یک کلید را با افزودن یک یا چند محدودیت برنامه از انواعی که می خواهید مجاز کنید، محدود می کنید، پس از آن فقط درخواست هایی که از این منابع نشات می گیرند مجاز هستند.
محدودیتهای API میتوانید APIها، SDKها یا سرویسهایی را که کلید API شما میتواند در آنها استفاده شود، محدود کنید. محدودیتهای API فقط درخواستها را به APIها و SDKهایی که شما مشخص میکنید اجازه میدهد. برای هر کلید API داده شده، می توانید به تعداد مورد نیاز محدودیت های API را مشخص کنید. لیست APIهای موجود شامل تمام APIهای فعال در یک پروژه است.
یک محدودیت برنامه برای یک کلید API تنظیم کنید
صفحه اعتبارنامه پلتفرم Google Maps کنسول Google Cloud را باز کنید.
کلید API را که می خواهید محدود کنید انتخاب کنید.
در صفحه ویرایش کلید API ، در زیر کلید محدودیتها ، تنظیم محدودیت برنامه را انتخاب کنید.
یکی از انواع محدودیت ها را انتخاب کنید و اطلاعات درخواستی را در لیست محدودیت ها ارائه دهید.
نوع محدودیت توضیحات وب سایت ها یک یا چند وب سایت ارجاع دهنده را مشخص کنید. - طرح های URI ارجاع دهنده پشتیبانی جهانی
https
وhttp
هستند. سایر طرحها تضمین نمیشوند که به درستی کار کنند، زیرا مرورگرهای وب مدرن به دلایل حفظ حریم خصوصی سرصفحه «مرجع» را در درخواستهای خروجی ارسال نمیکنند. - همیشه کل رشته ارجاع دهنده، از جمله طرح پروتکل، نام میزبان و پورت اختیاری (به عنوان مثال،
https://google.com
) را ارائه دهید. - می توانید از کاراکترهای wildcard برای مجوز دادن به همه زیر دامنه ها استفاده کنید. برای مثال،
https://*.google.com
همه سایتهایی که به.google.com
ختم میشوند را میپذیرد. - هنگام مجوز دادن به ارجاع دهندگان تمام مسیر، به عنوان مثال،
https://google.com/some/path
، مراقب باشید، زیرا اکثر مرورگرهای وب به دلایل حفظ حریم خصوصی، مسیر را از درخواست های مبدا متقابل حذف می کنند.
آدرس های IP یک یا چند آدرس IPv4 یا IPv6 یا زیرشبکه را با استفاده از نماد CIDR مشخص کنید. آدرسهای IP باید با آدرس منبعی که سرورهای پلتفرم Google Maps مشاهده میکنند مطابقت داشته باشد. اگر از ترجمه آدرس شبکه (NAT) استفاده می کنید، این آدرس معمولاً با آدرس IP عمومی دستگاه شما مطابقت دارد. برنامه های اندروید نام بسته Android (از فایل AndroidManifest.xml
) و اثر انگشت گواهی امضای SHA-1 را برای هر برنامه Android که میخواهید مجوز دهید، اضافه کنید. اگر از Play App Signing استفاده میکنید، برای واکشی اثر انگشت گواهی امضا، به کار با ارائهدهندگان API مراجعه کنید. اگر کلید امضای خود را مدیریت می کنید، به امضای خودکار برنامه خود مراجعه کنید یا به دستورالعمل های محیط ساخت خود مراجعه کنید.برنامه های iOS شناسه بسته نرم افزاری هر برنامه iOS را که می خواهید مجوز دهید اضافه کنید. برای توصیههایی برای محدودیت برنامه، به محدودیت برنامه توصیهشده مراجعه کنید.
- طرح های URI ارجاع دهنده پشتیبانی جهانی
ذخیره را انتخاب کنید.
محدودیت های API را برای یک کلید API تنظیم کنید
صفحه اعتبارنامه پلتفرم Google Maps کنسول Google Cloud را باز کنید.
کلید API را که می خواهید محدود کنید انتخاب کنید.
در صفحه کلید ویرایش API ، تحت محدودیت های API :
کلید محدود را انتخاب کنید.
Select APIs را باز کنید و API ها یا SDK هایی را که می خواهید برنامه شما به آن دسترسی داشته باشد با استفاده از کلید API انتخاب کنید.
اگر یک API یا SDK در لیست نیست، باید آن را فعال کنید. برای جزئیات، به فعال کردن یک یا چند API یا SDK مراجعه کنید.
ذخیره را انتخاب کنید.
پس از این مرحله محدودیت بخشی از تعریف کلید API می شود. مطمئن شوید که جزئیات مناسب را ارائه کرده اید و ذخیره را انتخاب کنید تا محدودیت های کلید API ذخیره شود. برای اطلاعات بیشتر، راهنمای دریافت کلید API را در اسناد مربوط به API یا SDK خاصی که به آن علاقه دارید، ببینید.
برای محدودیت های توصیه شده API، به محدودیت های توصیه شده API مراجعه کنید.
استفاده از کلید API خود را بررسی کنید
اگر کلیدهای API را پس از ایجاد آنها محدود می کنید، یا اگر می خواهید ببینید کدام API توسط یک کلید استفاده می شود تا بتوانید آنها را محدود کنید، می خواهید میزان استفاده از کلید API خود را بررسی کنید. این مراحل به شما نشان می دهد که در کدام سرویس ها و روش های API از یک کلید API استفاده می شود. اگر استفادهای فراتر از سرویسهای پلتفرم Google Maps مشاهده کردید، بررسی کنید تا مشخص کنید که آیا نیاز به اضافه کردن محدودیتهای بیشتری برای جلوگیری از استفاده ناخواسته دارید یا خیر. میتوانید از Google Maps Platform Cloud Console Metrics برای تعیین اینکه کدام API و محدودیتهای برنامه برای کلید API اعمال شود استفاده کنید:
API هایی که از کلید API شما استفاده می کنند را تعیین کنید
گزارشهای معیارهای زیر به شما امکان میدهند تعیین کنید کدام API از کلیدهای API شما استفاده میکند. از این گزارش ها برای انجام کارهای زیر استفاده کنید:
- نحوه استفاده از کلیدهای API خود را ببینید
- مشاهده استفاده غیرمنتظره
- به بررسی اینکه آیا کلید استفاده نشده قابل حذف است یا خیر کمک کنید. برای اطلاعات در مورد حذف یک کلید API، به حذف کلیدهای استفاده نشده API مراجعه کنید.
هنگام اعمال محدودیتهای API، از این گزارشها برای ایجاد فهرستی از APIها برای تأیید اعتبار یا تأیید اعتبار توصیههای محدودیت کلیدی API که بهطور خودکار تولید میشوند، استفاده کنید. برای اطلاعات بیشتر درباره محدودیتهای توصیهشده، به اعمال محدودیتهای توصیهشده مراجعه کنید. برای اطلاعات بیشتر در مورد استفاده از Metrics Explorer، به ایجاد نمودار با Metrics explorer مراجعه کنید.
به کاوشگر Metrics کنسول Google Cloud بروید
وارد شوید و پروژه ای را برای کلیدهای API که می خواهید بررسی کنید انتخاب کنید.
برای نوع API خود به صفحه کاوشگر Metrics بروید:
برای کلیدهای API با استفاده از هر API به جز Maps Embed API : به صفحه کاوشگر Metrics بروید.
برای کلیدهای API با استفاده از Maps Embed API : به Metrics Explorer بروید.
هر کلید API را بررسی کنید:
ADD FILTER را انتخاب کنید.
برچسب
credential_id
انتخاب کنید.مقدار مربوط به کلید مورد نظر برای بررسی را انتخاب کنید.
توجه داشته باشید که این کلید API برای کدام APIها استفاده می شود و تأیید کنید که مورد انتظار است.
پس از اتمام، گزینه Remove filter
در انتهای خط فیلتر فعال انتخاب کنید تا فیلتر اضافی حذف شود.
برای هر کلید باقیمانده این کار را تکرار کنید.
کلیدهای API خود را فقط به APIهایی که در حال استفاده هستند محدود کنید.
اگر استفاده غیرمجاز را مشاهده کردید، به مدیریت استفاده غیرمجاز از یک کلید API مراجعه کنید.
با استفاده از Metrics Explorer نوع صحیح محدودیت برنامه را انتخاب کنید
پس از تأیید و انجام اقدامات لازم برای اطمینان از اینکه کلید API شما فقط برای سرویسهای پلتفرم Google Maps که استفاده میکند استفاده میشود، همچنین مطمئن شوید که کلید API دارای محدودیتهای کاربردی صحیح است.
اگر کلید API شما محدودیت های کلید API را توصیه کرده است، آنها را اعمال کنید. برای اطلاعات بیشتر، اعمال محدودیتهای کلیدی API توصیهشده را ببینید.
اگر کلید API شما توصیههای محدودیتی ندارد، بر اساس platform_type
گزارششده با استفاده از کاوشگر Metrics، نوع محدودیت برنامه کاربردی را تعیین کنید:
به کاوشگر Metrics کنسول Google Cloud بروید
وارد شوید و پروژه API هایی را که می خواهید بررسی کنید انتخاب کنید.
به این صفحه کاوشگر Metrics بروید: Metrics Explorer .
هر کلید API را بررسی کنید:
ADD FILTER را انتخاب کنید.
برچسب
credential_id
انتخاب کنید.مقدار مربوط به کلید مورد نظر برای بررسی را انتخاب کنید.
پس از اتمام، گزینه Remove filter
در انتهای خط فیلتر فعال انتخاب کنید تا فیلتر اضافی حذف شود.
برای هر کلید باقیمانده این کار را تکرار کنید.
هنگامی که نوع پلتفرم کلیدهای API خود را دارید، محدودیت برنامه را برای آن
platform_type
اعمال کنید:PLATFORM_TYPE_JS
: محدودیتهای وبسایت را روی کلید اعمال کنید.PLATFORM_TYPE_ANDROID
: محدودیتهای برنامه Android را روی کلید اعمال کنید.PLATFORM_TYPE_IOS
: محدودیتهای برنامه iOS را روی کلید اعمال کنید.PLATFORM_TYPE_WEBSERVICE
: ممکن است مجبور شوید برای محدود کردن کلید به محدودیت های آدرس IP روی کلید تکیه کنید.برای توصیههایی درباره Maps Static API و Street View Static API، به محافظت از استفاده از Static Web API مراجعه کنید.
برای توصیههای Maps Embed API، به وبسایتهایی با Maps Embed API مراجعه کنید.
کلید API من از چندین نوع پلت فرم استفاده می کند: ترافیک شما را نمی توان به درستی تنها با یک کلید API ایمن کرد. شما باید به چندین کلید API مهاجرت کنید. برای اطلاعات بیشتر، به انتقال به چند کلید API مراجعه کنید.
برای هر برنامه از کلیدهای API جداگانه استفاده کنید
این عمل دامنه هر کلید را محدود می کند. اگر یکی از کلیدهای API به خطر بیفتد، میتوانید بدون نیاز به بهروزرسانی کلیدهای API دیگر، کلید تأثیرگذار را حذف یا بچرخانید. شما می توانید تا 300 کلید API در هر پروژه ایجاد کنید. برای اطلاعات بیشتر، محدودیتهای کلیدهای API را ببینید.
در حالی که یک کلید API برای هر برنامه برای اهداف امنیتی ایدهآل است، میتوانید از کلیدهای محدود در چندین برنامه استفاده کنید تا زمانی که از یک نوع محدودیت برنامه استفاده کنند.
محدودیت های توصیه شده کلید API را اعمال کنید
برای برخی از صاحبان پروژه، ویرایشگران و مدیران کلید API، کنسول Google Cloud بر اساس استفاده و فعالیت پلتفرم Google Maps، محدودیتهای کلیدی API خاصی را برای کلیدهای API نامحدود پیشنهاد میکند.
در صورت وجود، توصیهها بهعنوان گزینههای از پیش تکمیلشده در صفحه اعتبارنامههای پلتفرم Google Maps ظاهر میشوند.
APIها و SDK های پلتفرم Google Maps که توسط توصیه های خودکار پشتیبانی می شوند
Maps JavaScript API، شامل Directions Service (Legacy)، Distance Matrix Service (Legacy)، Elevation Service, Geocoding Service Place class Place Autocomplete Widget (جدید)، Place Autocomplete Data API, Places Library, Places Service & Place Autocomplete Widget
Maps Static API و Street View Static API
Maps Embed API
Maps SDK برای Android، Places SDK برای Android و Navigation SDK برای Android
Maps SDK برای iOS، Places SDK برای iOS، Places Swift SDK برای iOS و Navigation SDK برای iOS
دلایلی که ممکن است توصیه ای را مشاهده نکنید یا توصیه ای ناقص را ببینید
دلایل عدم مشاهده توصیه
شما (همچنین) از کلید API در سرویسهای پلتفرم Google Maps یا سرویسهای پلتفرم Maps که هنوز توسط توصیههای خودکار پشتیبانی نمیشوند، استفاده میکنید.
اگر استفاده از سرویسهای دیگر را مشاهده کردید، توصیه را بدون انجام کارهای زیر اعمال نکنید :
بررسی کنید که استفاده از API که در کاوشگر Metrics کنسول Google Cloud مشاهده میکنید قانونی است.
سرویسهای گمشده را بهصورت دستی به فهرست APIهایی که باید مجاز شوند اضافه کنید .
هرگونه محدودیت برنامه از دست رفته را برای سرویس های اضافه شده به لیست API به صورت دستی اضافه کنید . اگر دیگر اضافه شده شما به نوع دیگری از محدودیت های برنامه نیاز دارد، به انتقال به چند کلید API مراجعه کنید.
کلید API شما در SDKها یا APIهای سمت سرویس گیرنده استفاده نمی شود.
شما از کلید API در برنامه یا وب سایتی با حجم کم استفاده می کنید که در 60 روز گذشته استفاده نشده است.
شما اخیراً یک کلید جدید ایجاد کرده اید، یا اخیراً یک کلید موجود را در یک برنامه جدید مستقر کرده اید. اگر اینطور است، فقط چند روز دیگر صبر کنید تا توصیه ها به روز شوند.
شما از کلید API در چندین برنامه استفاده میکنید که به انواع متناقض محدودیتهای برنامه نیاز دارند، یا از کلید API یکسان در برنامهها یا وبسایتهای بسیار مختلف استفاده میکنید. در هر صورت، به عنوان بهترین روش، باید به چند کلید مهاجرت کنید. برای جزئیات بیشتر، انتقال به چند کلید API را ببینید.
دلایل مشاهده یک توصیه ناقص
شما از کلید API در برنامه یا وب سایتی با حجم کم استفاده می کنید که در 60 روز گذشته استفاده نشده است.
شما اخیراً شروع به استفاده از یک کلید موجود در یک API یا سرویس جدید کردهاید، و خط لوله توصیه محدودیت کلید API خودکار، هنوز معیارهای استفاده بهروز را پردازش نکرده است. انتشار معیارهای استفاده ممکن است چند روز طول بکشد.
اگر استفاده از سرویسهای دیگر را مشاهده کردید، توصیه را بدون انجام کارهای زیر اعمال نکنید :
بررسی کنید که استفاده از API که در کاوشگر Metrics کنسول Google Cloud مشاهده میکنید قانونی است.
سرویسهای گمشده را بهصورت دستی به فهرست APIهایی که باید مجاز شوند اضافه کنید .
هرگونه محدودیت برنامه از دست رفته را برای سرویس های اضافه شده به لیست API به صورت دستی اضافه کنید . اگر دیگر اضافه شده شما به نوع دیگری از محدودیت های برنامه نیاز دارد، به انتقال به چند کلید API مراجعه کنید.
مگر اینکه نیاز فوری به محدود کردن یک کلید داشته باشید، مثلاً به دلیل استفاده غیرمجاز، ممکن است یک یا دو روز منتظر بمانید تا توصیهها به نتیجه برسد.
دلایلی که ممکن است توصیه هایی را ببینید که در نمودارها قابل مشاهده نیستند
برنامه یا وب سایت شما فقط ترافیک بسیار کوتاهی ارسال کرد. در این حالت، از نمای نمودار جابجا شوید تا یک TABLE یا هر دو نمایش داده شود، زیرا استفاده همچنان در افسانه قابل مشاهده است. برای اطلاعات بیشتر، به جابجایی افسانههای کامل نمودار مراجعه کنید.
ترافیک شما از Maps Embed API است. برای دستورالعملها، به تعیین APIهایی که از کلید API شما استفاده میکنند مراجعه کنید.
ترافیک برنامه یا وبسایت خارج از محدوده تاریخی موجود در Google Cloud Console Metrics Explorer است.
برای اعمال محدودیت های توصیه شده
صفحه اعتبارنامه پلتفرم Google Maps کنسول Google Cloud را باز کنید.
در صورت وجود، اعمال محدودیت های توصیه شده را انتخاب کنید.
برای بررسی اینکه کلید API در کدام سرویسها استفاده میشود، بررسی استفاده از API را انتخاب کنید. اگر خدمات دیگری غیر از Google Maps Platform را مشاهده میکنید، برای مرور دستی مراحل توصیهشده در بالا، مکث کنید . مراحل عیبیابی را در ابتدای بخش اعمال محدودیتهای کلیدی API توصیهشده ببینید.
مجدداً بررسی کنید که محدودیتهای از پیش پر شده با وبسایتها و برنامههایی مطابقت داشته باشند که انتظار دارید از کلید API خود استفاده کنید.
بهترین روش : هر گونه محدودیت برنامه یا API را که به خدمات شما وابسته نیست، مستند کرده و حذف کنید. اگر چیزی به دلیل وابستگی غیرمنتظره خراب شد، میتوانید برنامهها یا APIهای مورد نیاز را دوباره به آن اضافه کنید.
اگر متوجه شدید که برنامه، وبسایت یا API به وضوح در توصیه شما وجود ندارد، آن را به صورت دستی اضافه کنید یا چند روز صبر کنید تا توصیه بهروزرسانی شود.
اگر در مورد توصیه پیشنهادی خود به راهنمایی بیشتری نیاز دارید، با پشتیبانی تماس بگیرید .
Apply را انتخاب کنید.
اگر درخواست شما پس از اعمال یک توصیه رد شد، چه کاری باید انجام دهید
اگر متوجه شدید که یک برنامه یا وب سایت پس از اعمال محدودیت رد می شود، به دنبال محدودیت برنامه ای که باید اضافه کنید در پیام خطای پاسخ API بگردید.
SDKها و APIهای سمت کلاینت
- برنامه های مبتنی بر مرورگر و مشاهده وب
مرورگرهای مدرن معمولاً هدر
Referer
را در درخواست متقاطع به دلایل حفظ حریم خصوصی ویرایش میکنند، و اغلب آن را بهOrigin
حذف میکنند. با این حال، رفتار دقیق بهreferrer-policy
اعمال شده سایت میزبان بستگی دارد و همچنین ممکن است بر اساس مرورگر کاربر و نسخه متفاوت باشد.برنامههای کاربردی وب که از طرحهای URI غیرشفاف یا محلی برای بارگیری محتوا استفاده میکنند، معمولاً مرورگر رندر یا نمای وب را به طور کامل هدر
Referer
را از تماسهای خروجی حذف میکنند، که ممکن است باعث شکست درخواستها با استفاده از کلیدهای API با محدودیتهای وبسایت شود.برای راهنمایی بیشتر، به میزبانی برنامه های مبتنی بر مرورگر خود در سرور مراجعه کنید.
دستورالعمل های عیب یابی برای برنامه های مبتنی بر مرورگر و مشاهده وب:
برای Maps JavaScript API، برای جزئیات بیشتر در مورد نحوه مجوز برنامه خود، به کنسول اشکال زدایی مرورگر مراجعه کنید.
طرح های URI عجیب و غریب تا حدی پشتیبانی می شوند. اگر بخشهایی از برنامه شما با یک طرح URI عجیب و غریب کار نمیکند، حتی پس از تأیید ارجاعدهنده مورد نیاز، احتمالاً باید برنامه خود را از راه دور روی سرور میزبانی کنید و آن را از طریق HTTPS (یا HTTP) بارگیری کنید.
اگر در مورد طرحهای URI عجیب و غریب به کمک نیاز دارید، با پشتیبانی تماس بگیرید .
سایر APIهای پلتفرم Maps معمولاً ارجاعی را که باید در پاسخ خطای API تأیید کنید، برمیگردانند، با این فرض که مشتری این اطلاعات را با درخواست رد شده ارسال کرده است.
طرح های URI عجیب و غریب پشتیبانی نمی شوند.
- برنامه های اندروید
از Android Debug Bridge (adb) یا Logcat استفاده کنید
- برنامه های iOS
مشاهده پیام های گزارش را ببینید
برنامههایی که مستقیماً با خدمات وب تماس میگیرند
برای برنامههایی که Maps Platform HTTPS REST API یا نقاط پایانی gRPC را مستقیماً بدون Google Maps Platform SDK سمت کلاینت فراخوانی میکنند، به زیر مراجعه کنید:
- برنامه های اندروید و iOS
اگر برنامه Android یا iOS شما مستقیماً بدون استفاده از SDK مشتری پلتفرم Google Maps با سرویسهای پلتفرم Maps تماس میگیرد، برای نکات عیبیابی بیشتر به برنامههای Android و برنامههای iOS و برای بهترین شیوههای امنیتی فعلی برای موارد استفاده از تلفن همراه، تماسهای سرویس وب سمت سرویس گیرنده امن را ببینید.
اگر برنامه شما پاسخهای خطای Maps Platform API را ثبت کند، دستورالعملهای بالا برای SDKهای سمت سرویس گیرنده نیز ممکن است برای عیبیابی مشکلات احراز هویت مفید باشد.
- برنامه های سمت سرور
برنامه های سمت سرور متکی به کلیدهای API به بهترین وجه از طریق محدودیت های آدرس IP ایمن می شوند. اگر محدودیتهای آدرس IP را برای کلید خود اعمال کردهاید، و سرویس شما پاسخهای خطای Maps Platform API را گزارش میکند، گزارشهای سیستم خود را برای اطلاعات بیشتر بررسی کنید. پاسخ خطا شامل آدرس IP سروری است که باید مجوز دهید.
- برنامه های مبتنی بر مرورگر یا مشاهده وب
در حالی که Maps Static API، APIهای جدیدتر Google Maps Platform Static API از محدودیتهای ارجاعدهنده پشتیبانی میکنند، توجه داشته باشید که مرورگرهای وب یا وبنماها احتمالاً هدر
Referer
را برای درخواستهای متقاطع بهOrigin
محدود میکنند و احتمالاً ارسال آن را بهطور کلی حذف میکنند، مثلاً برای منابعی که به صورت محلی به آنها دسترسی دارند، یا برای منابعی که به غیر از پروتکل HTTP یا HTTPS ارائه میشوند.اگر نمیتوانید از Maps JavaScript API در برنامهتان استفاده کنید، و محدودیتهای وبسایت کار نمیکنند، برای نحوه برقراری تماسهای سرویس وب پلتفرم Maps به صورت ایمن از داخل برنامه سمت سرویس گیرنده مبتنی بر مرورگر، به تماسهای سرویس وب سمت سرویس گیرنده امن مراجعه کنید.
بررسی محدودیت های API
برای بررسی محدودیتهای API مورد نیاز خود، به تعیین APIهایی که از کلید API شما استفاده میکنند مراجعه کنید.
اگر نمی توانید تعیین کنید که کدام محدودیت اعمال شود:
- محدودیت های فعلی را برای مراجعات بعدی مستند کنید.
- در حین بررسی موضوع، آنها را به طور موقت حذف کنید. میتوانید با استفاده از مراحل بررسی استفاده از کلید API خود را در طول زمان بررسی کنید.
- در صورت نیاز با پشتیبانی تماس بگیرید .
کلیدهای API استفاده نشده را حذف کنید
قبل از اینکه یک کلید API را حذف کنید، مطمئن شوید که در تولید استفاده نمی شود. اگر ترافیک موفقیت آمیزی وجود نداشته باشد، احتمالاً کلید حذف می شود. برای اطلاعات بیشتر، بررسی استفاده از کلید API خود را ببینید.
برای حذف یک کلید API:
صفحه اعتبارنامه پلتفرم Google Maps کنسول Google Cloud را باز کنید.
کلید API را که می خواهید حذف کنید انتخاب کنید.
دکمه Delete را نزدیک بالای صفحه انتخاب کنید.
در صفحه حذف اعتبارنامه ، حذف را انتخاب کنید.
انتشار یک کلید API چند دقیقه طول می کشد. پس از تکمیل انتشار، هرگونه ترافیک با استفاده از کلید API حذف شده رد می شود.
هنگام چرخاندن کلیدهای API مراقب باشید
چرخاندن یک کلید API یک کلید جدید ایجاد می کند که تمام محدودیت های کلید قدیمی را دارد. در این پنجره زمانی، هم کلید قدیمی و هم کلید جدید پذیرفته میشوند و به شما فرصتی میدهد تا برنامههای خود را برای استفاده از کلید جدید انتقال دهید.
قبل از چرخاندن یک کلید API :
ابتدا سعی کنید کلیدهای API خود را همانطور که در Restrict your API keys توضیح داده شده محدود کنید.
اگر محدود کردن کلید API شما به دلیل متناقض انواع محدودیت برنامه امکان پذیر نیست، همانطور که در انتقال به چندین کلید API توضیح داده شده است، به چندین کلید جدید (محدود شده) مهاجرت کنید. مهاجرت به شما امکان می دهد انتقال را کنترل کنید و جدول زمانی را به کلیدهای API جدید ارائه دهید.
اگر پیشنهادات قبلی ممکن نیست ، و باید کلید API خود را بچرخانید تا از استفاده غیرمجاز جلوگیری کنید، سپس این مراحل را دنبال کنید:
صفحه اعتبارنامه پلتفرم Google Maps کنسول Google Cloud را باز کنید.
کلید API را که می خواهید بچرخانید باز کنید.
در بالای صفحه، کلید چرخش را انتخاب کنید.
در صورت تمایل، نام کلید API را تغییر دهید.
ایجاد را انتخاب کنید.
برنامه های خود را برای استفاده از کلید جدید به روز کنید.
پس از اینکه برنامههای خود را برای استفاده از کلید جدید بهروزرسانی کردید، با کلیک بر روی دکمه حذف کلید قبلی در بخش Previous Key صفحه کلید API جدید، کلید قدیمی را حذف کنید.
به چندین کلید API مهاجرت کنید
برای انتقال از استفاده از یک کلید API برای چندین برنامه به یک کلید API منحصر به فرد برای هر برنامه، موارد زیر را انجام دهید:
مشخص کنید کدام برنامه ها به کلیدهای جدید نیاز دارند :
- برنامه های وب ساده ترین به روز رسانی هستند، زیرا شما همه کدها را کنترل می کنید. برنامه ریزی کنید که همه کلیدهای برنامه های مبتنی بر وب خود را به روز کنید.
- برنامه های تلفن همراه بسیار سخت تر هستند، زیرا مشتریان شما باید قبل از استفاده از کلیدهای جدید، برنامه های خود را به روز کنند.
ایجاد و محدود کردن کلیدهای جدید : هم یک محدودیت برنامه و هم حداقل یک محدودیت API اضافه کنید. برای اطلاعات بیشتر، بهترین شیوه های توصیه شده را ببینید.
کلیدهای جدید را به برنامههای خود اضافه کنید : برای برنامههای تلفن همراه، این فرآیند ممکن است ماهها طول بکشد تا همه کاربران شما با کلید API جدید به آخرین برنامه بهروزرسانی شوند.
استفاده از سمت سرویس گیرنده و سمت سرور را به پروژه های جداگانه تقسیم کنید
اگر نیاز دارید با سرویسهای پلتفرم Google Maps هم از برنامههای سمت سرور و هم مستقیماً از برنامههای سمت سرویس گیرنده که دستگاههای کاربر نهایی را اجرا میکنند تماس بگیرید، Google توصیه میکند استفاده خود را بین دو پروژه جداگانه تقسیم کنید.
این رویکرد به شما امکان میدهد محدودیتهای مناسب در دقیقه و سهمیه هر کاربر را در اکثر سرویسهای پلتفرم Google Maps در پروژه سمت مشتری خود اعمال کنید، و به شما کمک میکند تا مطمئن شوید که همه کاربران نهایی بدون تأثیرگذاری بر یکدیگر، سهم منصفانه خود را از سهمیه کلی پروژه شما دریافت میکنند.
با این حال، از آنجایی که محدودیتهای سهمیه هر کاربر هم بر برنامههای سمت کلاینت و هم بر برنامههای سمت سرور تأثیر میگذارد، اگر به پهنای باند بالایی برای کارهای سمت سرور خود نیز نیاز دارید، یک پروژه جداگانه برای این مورد استفاده کنید که با محدودیت سهمیه هر کاربر بالاتر یا بدون محدودیت پیکربندی شده است.
غیرفعال کردن خدمات استفاده نشده
سرویسهای بلااستفاده را در پروژهای فعال نگذارید، زیرا این روش در معرض سوء استفاده قرار میگیرد، به خصوص اگر تمام کلیدهای API عمومی خود را محدود نکرده باشید. به عنوان بهترین روش، فقط زمانی یک سرویس را در یک پروژه فعال کنید که توسط برنامه های شما مورد نیاز باشد.
افزودن محدودیتهای API بر روی یک کلید، از استفاده از آن در سرویسهایی که برای آنها مجاز نبوده است، جلوگیری میکند، اما محدودیتهای API فقط برای آن کلید خاص اعمال میشود. یک سرویس را در سطح پروژه غیرفعال کنید تا از استفاده غیرمجاز از سرویس در هر کلید مرتبط با پروژه جلوگیری شود.
از SDK های سمت سرویس گیرنده استفاده کنید
هنگام استفاده از کیتهای توسعه نرمافزاری ارائه شده در سمت سرویس گیرنده Google Maps Platform، همیشه میتوانید محدودیتهای مناسبی را برای کلید API خود اعمال کنید تا استفاده از سرویس خود را ایمن کنید.
استفاده از SDK های سمت سرویس گیرنده همچنین به شما امکان می دهد مکانیسم امنیتی پیشرفته تری مانند بررسی برنامه Firebase در سطوح API پلتفرم Maps که از آن پشتیبانی می کنند، اتخاذ کنید. برای اطلاعات بیشتر به استفاده از بررسی برنامه برای ایمن کردن کلید API خود مراجعه کنید.
اگر SDK های سمت سرویس گیرنده برای پلتفرم شما در دسترس نیستند، به ایمن کردن تماس های سرویس وب سمت سرویس گیرنده مراجعه کنید.
برای در دسترس بودن SDK های پلت فرم Google Maps سمت سرویس گیرنده برای پلتفرم های مختلف، به محدودیت های برنامه و API توصیه شده مراجعه کنید.
از استفاده Static Web API محافظت کنید
APIهای وب استاتیک، مانند Maps Static API و Street View Static API، مشابه تماسهای API سرویس وب هستند.
شما هر دو را با استفاده از HTTPS REST API فراخوانی میکنید و معمولاً URL درخواست API را روی سرور ایجاد میکنید. با این حال، به جای بازگرداندن پاسخ JSON، APIهای وب استاتیک تصویری را تولید میکنند که میتوانید آن را در کد HTML تولید شده جاسازی کنید. مهمتر از آن، این سرویس گیرنده کاربر نهایی است که سرویس پلتفرم نقشه های گوگل را فرا می خواند نه سرور.
از امضای دیجیتال استفاده کنید
به عنوان بهترین روش، همیشه علاوه بر کلید API از امضای دیجیتال استفاده کنید. همچنین، تعداد درخواستهای بدون امضا را که میخواهید در روز مجاز کنید بررسی کنید و سهمیه درخواستهای امضا نشده خود را بر این اساس تنظیم کنید .
برای جزئیات بیشتر در مورد امضای دیجیتال، راهنمای امضای دیجیتال را ببینید.
از راز امضای خود محافظت کنید
برای محافظت از APIهای وب استاتیک، اسرار امضای API خود را مستقیماً در کد یا درخت منبع قرار ندهید، یا آنها را در برنامه های سمت سرویس گیرنده افشا نکنید. این بهترین شیوه ها را برای محافظت از اسرار امضای خود دنبال کنید:
نشانیهای اینترنتی درخواست Maps Static API و Street View Static API را در سمت سرور هنگام ارائه یک صفحه وب یا در پاسخ به درخواست برنامه تلفن همراه خود ایجاد کنید .
برای محتوای وب ثابت، میتوانید از ویجت Sign a URL now در صفحه اعتبارنامه پلتفرم Google Maps کنسول Cloud استفاده کنید.
برای محتوای وب پویا، نمونه کد امضای درخواست URL موجود را ببینید.
اسرار امضا را خارج از کد منبع و درخت منبع برنامه خود ذخیره کنید . اگر اسرار امضای خود یا هر اطلاعات خصوصی دیگری را در متغیرهای محیط قرار دهید یا فایلهایی را که جداگانه ذخیره میشوند و سپس کد خود را به اشتراک بگذارید، در فایلهای مشترک گنجانده نمیشود. اگر اسرار امضا یا هر اطلاعات خصوصی دیگری را در فایلها ذخیره میکنید، فایلها را خارج از درخت منبع برنامه خود نگه دارید تا اسرار امضای خود را از سیستم کنترل کد منبع خود دور نگه دارید. اگر از سیستم مدیریت کد منبع عمومی مانند GitHub استفاده می کنید، این احتیاط به ویژه مهم است.
از کلیدهای API سرویس وب محافظت کنید
برای استفاده ایمن از APIها و سرویسهای Google Maps Platform از برنامههای سمت سرویس گیرنده، به استفاده از SDKهای سمت سرویس گیرنده و تماسهای امن سرویس وب سمت سرویس گیرنده مراجعه کنید.
کلیدهای API را خارج از کد منبع یا درخت منبع برنامه خود ذخیره کنید . اگر کلیدهای API یا هر اطلاعات دیگری را در متغیرهای محیطی قرار دهید یا فایلهایی را که جداگانه ذخیره میشوند و سپس کد خود را به اشتراک بگذارید، در فایلهای به اشتراکگذاشتهشده گنجانده نمیشوند. اگر از سیستم مدیریت کد منبع عمومی مانند GitHub استفاده می کنید، این امر به ویژه مهم است.
برای کمک به محافظت از کلید API سرویس وب خود در برابر استفاده تصادفی، Google توصیه میکند برای هر کلیدی که برای پلتفرم Maps استفاده میشود، محدودیتهای API اعمال کنید. علاوه بر این، همچنین اعمال محدودیتهای آدرس IP برای کلید سرویس وب شما، از آن در برابر کمک به محافظت از آن در برابر استفاده غیرمجاز از سایر آدرسهای IP منبع محافظت میکند، حتی اگر کلید به طور تصادفی نشت کند.
از OAUTH برای برنامه های سمت سرور استفاده کنید
OAUTH 2.0 یک استاندارد باز برای نمایندگی دسترسی است.
در حالی که پروتکل OAUTH 2.0 از موارد استفاده پشتیبانی می کند ، در حالی که یک کاربر نهایی اجازه دسترسی به داده های شخصی را از طرف آنها مجاز می کند ، مورد استفاده در نظر گرفته شده برای OAUTH 2.0 با MAPS Platform برای توسعه دهنده است که از توکن های دسترسی موقت برای اجازه درخواست خود برای تماس با API از حساب کاربری Google Project خود با مجوزهای حساب کاربری خدمات استفاده کند.
از آنجا که یک حساب خدمات ممکن است مجوزهای بسیار گسترده ای داشته باشد ، OAUTH 2.0 برای مجوز تماس های سرور به سرور بین برنامه های سرور قابل اعتماد یک توسعه دهنده و سرورهای پلت فرم نقشه های Google توصیه می شود.
برای برنامه های سمت مشتری که در دستگاه های کاربر نهایی کار می کنند ، سایر روش های احراز هویت مانند کلیدهای API توصیه می شود.
اگر می خواهید از OAUTH 2.0 برای مجوز ترافیک سرور به سرور استفاده کنید ، به دنبال موضوع OAUTH در مستندات API خود باشید.
به عنوان مثال ، در اینجا موضوع OAUTH برای API اعتبارسنجی آدرس است.
تماس های سرویس وب طرف مشتری را ایمن کنید
اگر SDK های سمت مشتری در دسترس نیستند ، به توصیه های زیر مراجعه کنید.
از سرور پروکسی استفاده کنید
استفاده از یک سرور پراکسی ایمن منبع کاملی برای تعامل با یک سرویس وب سایت وب سایت Google Maps از یک برنامه سمت مشتری بدون افشای کلید API ، امضای حساب Secret یا Google Cloud Service برای کاربران غیرمجاز فراهم می کند.
نکات کلیدی:
* Construct your Google Maps Platform requests on the proxy server.
**Don't** allow clients to relay arbitrary API calls using the proxy.
* Post-process the Google Maps Platform responses on your proxy server.
Filter out data that the client doesn't need.
برای کسب اطلاعات بیشتر در مورد استفاده از سرور پروکسی ، به Living Vicarious به طور کلی مراجعه کنید: استفاده از سرورهای پروکسی با کتابخانه های مشتری Google Data API .
تماس مستقیم سرویس وب تلفن همراه مستقیم
اگر قادر به تنظیم یک سرور پراکسی ایمن برای برنامه سمت مشتری خود نیستید ، با استفاده از مراحل زیر برنامه خود را ایمن کنید:
از هدرهای HTTP استفاده کنید:
Android : از هدرهای HTTP
X-Android-Package
وX-Android-Cert
استفاده کنید.iOS : از هدر HTTP
X-Ios-Bundle-Identifier
استفاده کنید.
محدودیت های برنامه مربوطه را به کلید Android یا iOS خود اضافه کنید.
قبل از اینکه تماس تلفنی را مستقیماً از برنامه تلفن همراه خود به یک سرویس وب وب Google Maps REST API در نظر بگیرید ، تأیید کنید که درخواست ها با شناسه های نادرست Android یا IOS رد می شوند.
اگر محدودیت های کاربردی Android و iOS در نقطه پایانی آزمایش شده پشتیبانی نشود ، Google به شدت توصیه می کند که از یک سرور پروکسی ایمن بین مشتریان تلفن همراه خود و نقطه پایانی سرویس وب سایت Google Maps استفاده کنید.
نکاتی برای برنامه های Android:
قبل از ادغام برنامه Android خود با Google Maps Platform Services ، تأیید کنید که شناسه برنامه (همچنین نام بسته نیز نامیده می شود) به درستی فرمت شده است. برای جزئیات بیشتر ، به ماژول برنامه پیکربندی مراجعه کنید. در مستندات اندرویدی.
برای عبور
X-Android-Package
مستقیماً از برنامه خود ، آن را به صورت برنامه ای با استفاده ازContext.getPackageName()
جستجو کنید.برای عبور
X-Android-Cert
به طور مستقیم از برنامه های خود ، اثر انگشت مورد نیاز SHA-1 را از گواهینامه های امضای برنامه خود محاسبه کنید ، از طریقPackageInfo.signingInfo
قابل دسترسی است.اگر برنامه Android خود را با استفاده از کنسول Google Cloud مجاز می دانید ، توجه داشته باشید که UI انتظار دارد که اثر انگشت SHA-1 به عنوان یک رشته روده بزرگ باشد ، به عنوان مثال
00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33
. با این حال ، ابزارgcloud
و API Keys API انتظار رشته شش ضلعی را بدون تعیین کننده دارند.
نکاتی برای برنامه های iOS:
قبل از ادغام برنامه iOS خود با Google Maps Platform Services ، تأیید کنید که شناسه بسته نرم افزاری شما به درستی فرمت شده است.
شما به طور معمول باید هنگام مجوز برنامه iOS خود ، شناسه بسته نرم افزاری اصلی خود را در هدر
X-Ios-Bundle-Identifier
منتقل کنید.
برای اطلاعات بیشتر ، به مقالات مدیریت کلیدهای API مراجعه کرده و از کلیدهای API برای دسترسی به API استفاده کنید .
برنامه های مبتنی بر مرورگر خود را بر روی یک سرور میزبانی کنید
چارچوب ها ، مانند Apache Cordova ، به شما امکان می دهد برنامه های ترکیبی چند پلتفرمی را به راحتی ایجاد کنید که در داخل یک وب سایت کار می کنند. با این حال ، محدودیت های وب سایت کلید API تضمین نمی شود که به درستی کار کند ، مگر اینکه برنامه وب شما با استفاده از HTTP یا HTTPS از وب سایتی که شما کنترل می کنید و مجاز به آن است ، بارگیری شود.
منابع بسته بندی شده ، بارگذاری شده به صورت محلی از درون یک برنامه ترکیبی ، یا دسترسی به URL پرونده محلی در بسیاری از موارد از کار مجوز مبتنی بر مراجعه کننده جلوگیری می کند زیرا موتور مرورگر که از طریق وب سایت شما نیرو می گیرد ، از ارسال هدر Referer
حذف می شود. برای جلوگیری از این امر ، میزبان برنامه های وب خود در سمت سرور است ، نه طرف مشتری.
از طرف دیگر ، برای برنامه های تلفن همراه ، به جای استفاده از SDK مبتنی بر وب ، از Android و iOS SDK های موجود در سیستم های Google Maps موجود استفاده کنید.
برای ایمن کردن کلید API خود از برنامه چک استفاده کنید
برخی از نقشه های SDK و API به شما امکان می دهند تا با بررسی برنامه Firebase ادغام شوید. برنامه بررسی ، با مسدود کردن ترافیکی که از منابع دیگری غیر از برنامه های قانونی حاصل می شود ، از تماس های برنامه شما به پلت فرم Google Maps محافظت می کند. این کار را با بررسی یک نشانه از ارائه دهنده تأیید انجام می دهد. ادغام برنامه های خود با برنامه بررسی برنامه به محافظت در برابر درخواست های مخرب کمک می کند ، بنابراین شما برای تماس های API غیرمجاز هزینه نمی کنید.
دستورالعمل های ادغام برنامه:
- مکانهای SDK برای iOS
- مکانهای SDK برای Android
- نقشه API JavaScript
- کلاس را قرار دهید ، نقشه های JavaScript API
استفاده غیرمجاز از یک کلید API را کنترل کنید
اگر استفاده از کلید API خود را که غیرمجاز است ، تشخیص دهید ، موارد زیر را برای حل مشکل انجام دهید:
کلیدهای خود را محدود کنید : اگر در چندین برنامه از همان کلید استفاده کرده اید ، به چندین کلید API مهاجرت کنید و از کلیدهای API جداگانه برای هر برنامه استفاده کنید. برای جزئیات بیشتر، نگاه کنید به:
اگر از مکان های SDK یا Maps JavaScript API استفاده می کنید ، می توانید از برنامه Check برای ایمن کردن کلید API خود نیز استفاده کنید .
اگر موارد زیر صحیح است فقط کلیدها را جایگزین یا بچرخانید:
شما استفاده غیرمجاز را روی کلیدهایی که یا نمی توانند محدود شوند یا از قبل محدود شده اند ، تشخیص می دهید و بررسی برنامه کاربردی نیست.
شما می خواهید سریعتر حرکت کنید تا کلید API خود را تأمین کرده و سوء استفاده را متوقف کنید ، حتی اگر این امر بر ترافیک قانونی از درخواست شما تأثیر بگذارد.
قبل از ادامه کار ، هنگام چرخاندن کلیدهای API مراقب باشید .
اگر هنوز مشکل دارید یا به کمک نیاز دارید ، با پشتیبانی تماس بگیرید .
محدودیت های کاربردی و API توصیه شده
بخش های زیر محدودیت های برنامه و API مناسب را برای هر سیستم API ، SDK یا سرویس پلت فرم Google Maps ارائه می دهد.
محدودیت های API توصیه شده
دستورالعمل های زیر برای محدودیت های API برای کلیه خدمات پلت فرم Google Maps اعمال می شود:
کلید API خود را فقط به API هایی که از آن استفاده می کنید محدود کنید ، با استثنائات زیر:
اگر برنامه شما از مکان های SDK برای Android یا مکان های SDK برای iOS استفاده می کند ، بسته به نسخه SDK که استفاده می کنید ، API (جدید) یا API را در مکان قرار می دهد. 1
اگر برنامه شما از نقشه های JavaScript API استفاده می کند ، همیشه آن را در کلید خود مجاز کنید.
اگر از هر یک از نقشه های زیر از خدمات API JavaScript استفاده می کنید ، باید این API های مربوطه را نیز مجاز کنید:
خدمات محدودیت API سرویس مسیرها (میراث) مسیرها API (میراث) سرویس ماتریس از راه دور (میراث) API ماتریس فاصله (میراث) سرویس ارتفاع Elevation API خدمات جغرافیایی API کدگذاری جغرافیایی کلاس را قرار دهید ، ویجت خودکار (جدید) را قرار دهید و API داده های خودکار را قرار دهید مکان های API (جدید) 2 مکان های کتابخانه ، مکان ها خدمات و مکان ویجت خودکار را قرار دهید API 2 را مکان می کند
1 برای اطلاعات بیشتر ، به مکان های SDK برای Android مراجعه کنید و SDK را برای مستندات iOS قرار دهید .
2 اگر مطمئن نیستید که نیاز به مجاز به مکان های API (جدید) یا API دارید ، به اسناد API Maps JavaScript مراجعه کنید.
چند نمونه:
شما از نقشه SDK برای Android استفاده می کنید و SDK را برای Android قرار می دهید ، بنابراین نقشه SDK را برای Android و API (جدید) به عنوان محدودیت API درج می کنید.
وب سایت شما از MAPS JavaScript API Elevation Service و API Static Maps استفاده می کند ، بنابراین محدودیت های API را برای همه API های زیر اضافه می کنید:
- نقشه API JavaScript
- Elevation API
- نقشه های API استاتیک
محدودیت برنامه توصیه شده
وب سایت ها
برای وب سایت هایی که از MAPS Services API JavaScript ، نقشه های استاتیک API یا Street View Static API یا تماس با خدمات اخیر Google Maps Platform به طور مستقیم از طریق HTTPS REST API یا GRPC استفاده می کنند ، از محدودیت برنامه وب سایت ها استفاده کنید:
1 برای برنامه های کاربردی تلفن همراه ، استفاده از نقشه های بومی SDK را برای Android و نقشه SDK برای iOS در نظر بگیرید.
2 برای برنامه های کاربردی تلفن همراه ، استفاده از مکان های بومی SDK را برای Android و SDK را برای iOS در نظر بگیرید.
3 همچنین به استفاده از استاتیک وب استفاده کنید .
وب سایت هایی با نقشه های تعبیه شده API
در حالی که استفاده از API نقشه های تعبیه شده هیچ هزینه ای ندارد ، شما هنوز هم باید کلید API استفاده شده را برای جلوگیری از سوءاستفاده از سایر خدمات محدود کنید.
بهترین تمرین : یک کلید API جداگانه برای نقشه های API تعبیه شده ایجاد کنید و این کلید را فقط در نقشه های تعبیه شده API محدود کنید. این محدودیت به اندازه کافی کلید را تضمین می کند و از استفاده غیرمجاز آن در هر سرویس Google دیگر جلوگیری می کند. Google برای کنترل کامل در مورد مکان API API MAPS که می توان از آن استفاده کرد ، توصیه می کند که از محدودیت های کاربردی وب سایت ها استفاده کند.
اگر قادر به جدا کردن استفاده از API نقشه های خود در یک کلید API جداگانه نیستید ، با استفاده از محدودیت برنامه وب سایت ، کلید موجود خود را ایمن کنید.
برنامه ها و سرورها با استفاده از خدمات وب
برای سرورها و برنامه های سمت مشتری از شبکه های داخلی معتبر شرکت با استفاده از خدمات وب به همراه کلیدهای API ، از محدودیت برنامه IP addresses
استفاده کنید.
برای برنامه ها و سرورها با استفاده از این API ها استفاده کنید:
4 برای برنامه های کاربردی تلفن همراه ، استفاده از SDK ناوبری را در نظر بگیرید.
5 برای استفاده ایمن موبایل ، از یک سرور پراکسی ایمن استفاده کنید.
6 برای برنامه های سمت مشتری ، استفاده از سرویس جغرافیایی بومی ارائه شده توسط این سیستم عامل را در نظر بگیرید. به عنوان مثال ، جغرافیایی W3C برای مرورگرهای وب ، SocationManager یا API ارائه دهنده موقعیت مکانی ذوب شده برای Android یا چارچوب Apple Core Location برای iOS.
7 برای برنامه های تلفن همراه ، استفاده از مکان های بومی SDK را برای Android و SDK را برای iOS در نظر بگیرید.
8 برای استفاده ایمن از طرف مشتری ، از یک سرور پراکسی ایمن استفاده کنید.
برنامه های اندروید
برای برنامه های موجود در Android ، از محدودیت برنامه Android apps
استفاده کنید. برای برنامه ها با استفاده از این SDK ها استفاده کنید:
علاوه بر این ، با استفاده از افزونه Secrets Gradle ، به طور تصادفی از بررسی کلیدهای API در کنترل نسخه جلوگیری کنید تا اسرار از یک فایل محلی را وارد کنید و نه ذخیره آنها در مانیفست Android.
برنامه های iOS
برای برنامه های موجود در iOS ، از محدودیت برنامه iOS apps
استفاده کنید. برای برنامه ها و سرورها با استفاده از این SDK ها استفاده کنید:
در ادامه مطلب
- کلیدهای API را مدیریت کنید
- از کلیدهای API برای دسترسی به APIها استفاده کنید
- بهینه سازی استفاده از پلتفرم Google Maps خود با سهمیه (ویدئو)
- نحوه تولید و محدود کردن کلیدهای API برای پلت فرم Google Maps (ویدئو)
- محدود کردن کلیدهای API
- تأمین کلیدهای API هنگام استفاده از نقشه های استاتیک و API های Street View
- 15 پلت فرم Google Maps بهترین شیوه ها
برنامه ها و پروژه هایی که از API ها و SDK های پلت فرم Google Maps استفاده می کنند ، باید از کلیدهای API یا در صورت پشتیبانی از OAUTH 2.0 استفاده کنند تا خود را تأیید کنند.
این بهترین شیوه ها به شما نشان می دهد که چگونه می توانید دسترسی به پلتفرم نقشه های خود را تضمین کنید.
اگر می خواهید از OAUTH 2.0 برای مجوز ترافیک سرور به سرور استفاده کنید ، به دنبال موضوع OAUTH در مستندات API خود باشید. برای اطلاعات بیشتر به استفاده از OAUTH برای برنامه های سمت سرور مراجعه کنید.
علاوه بر استفاده از محدودیت های اصلی برنامه و API ، هرگونه روش امنیتی را که در مورد محصولات خاص پلت فرم Google Maps اعمال می شود ، دنبال کنید. به عنوان مثال ، نقشه های API JavaScript را در زیر در برنامه های توصیه شده و محدودیت های API مشاهده کنید.
اگر کلیدهای API شما در حال استفاده هستند ، توصیه های زیر را در صورت محدود کردن یک کلید API مورد استفاده ، مرور کنید.
برای اطلاعات بیشتر در مورد امضاهای دیجیتال ، پشتیبانی شده توسط نقشه های استاتیک API و خیابان View Static API ، به راهنمای امضای دیجیتال مراجعه کنید.
بهترین روشهای توصیه شده
برای افزایش امنیت و برای جلوگیری از صورتحساب برای استفاده غیرمجاز ، این بهترین روشهای امنیتی API را برای همه API ها ، SDK ها یا خدمات پلت فرم Google Maps دنبال کنید:
برای همه استفاده های کلید API توصیه می شود
برای هر برنامه از کلیدهای API جداگانه استفاده کنید
کلیدهای API بلااستفاده را حذف کنید
استفاده از کلید API خود را بررسی کنید
هنگام چرخش کلیدهای API مراقب باشید
استفاده از سمت مشتری و سمت سرور را به پروژه های جداگانه تقسیم کنید
خدمات بلااستفاده را غیرفعال کنید
توصیه های اضافی برای برنامه های سمت مشتری
از SDK های سمت مشتری استفاده کنید
تماس های سرویس وب طرف مشتری را ایمن کنید
توصیه های اضافی برای وب سایت ها یا برنامه های سمت مشتری با استفاده از API های وب استاتیک
از استفاده از API وب استاتیک محافظت کنید
توصیه های اضافی برای برنامه های سمت سرور با استفاده از خدمات وب
از کلیدهای API سرویس وب محافظت کنید
از OAUTH برای برنامه های سمت سرور استفاده کنید
اگر در حال محدود کردن یا چرخش یک کلید API هستید که در حال استفاده است
قبل از تغییر کلید API ، بررسی کلید API خود را بررسی کنید ، اگر محدودیت هایی را برای یک کلید که قبلاً در یک برنامه تولید استفاده می شود ، به ویژه مهم است.
پس از تغییر کلید ، تمام برنامه های خود را با کلیدهای جدید API به روز کنید ، در صورت لزوم.
اگر کلید API شما به خطر نیامده و به طور فعال مورد آزار و اذیت قرار نگرفته است ، می توانید برنامه های خود را به چندین کلید جدید API با سرعت خود مهاجرت کنید ، و کلید اصلی API را دست نخورده باقی می مانند تا اینکه فقط یک نوع ترافیک را مشاهده کنید ، و می توان با اطمینان از یک نوع محدودیت کاربردی محدود کرد بدون اینکه باعث ایجاد اختلال در سرویس ناخواسته شود.
برای دستورالعمل های بیشتر ، به مهاجرت به چندین کلید API مراجعه کنید.
استفاده را به مرور زمان کنترل کنید و ببینید چه زمانی API های خاص ، انواع پلتفرم و دامنه ها قبل از انتخاب محدود کردن یا حذف کلید قدیمی ، از کلید قدیمی API مهاجرت کرده اند. برای اطلاعات بیشتر ، به گزارشگری و نظارت و معیارها مراجعه کنید
اگر کلید API شما به خطر افتاده است ، می خواهید سریعتر حرکت کنید تا کلید API خود را تأمین کرده و سوء استفاده را متوقف کنید. در برنامه های Android و iOS ، کلیدها تا زمانی که مشتریان برنامه های خود را به روز کنند جایگزین نمی شوند. به روزرسانی یا جایگزینی کلیدها در صفحات وب یا در برنامه های سمت سرور بسیار ساده تر است ، اما ممکن است هنوز هم نیاز به برنامه ریزی دقیق و کار سریع داشته باشد.
برای اطلاعات بیشتر ، به استفاده غیرمجاز از یک کلید API مراجعه کنید.
اطلاعات بیشتر
محدودیت های کاربردی و API توصیه شده
کلیدهای API خود را محدود کنید
بهترین روش این است که همیشه کلیدهای API خود را با یک نوع محدودیت کاربرد و یک یا چند محدودیت API محدود کنید. برای محدودیت های پیشنهادی توسط سرویس API ، SDK یا JavaScript ، به برنامه های توصیه شده و محدودیت های API در زیر مراجعه کنید.
محدودیت های برنامه شما می توانید استفاده از یک کلید API را در سیستم عامل های خاص محدود کنید: برنامه های Android یا iOS یا وب سایت های خاص برای برنامه های سمت مشتری ، یا آدرس های IP خاص یا زیر شبکه های CIDR برای برنامه های سمت سرور صدور سرویس وب REST API.
شما یک کلید را با اضافه کردن یک یا چند محدودیت کاربردی از انواع مورد نظر برای مجاز بودن محدود می کنید ، پس از آن فقط درخواست های منشاء این منابع مجاز است.
محدودیت های API شما می توانید محدود کنید که API ها ، SDK ها یا خدماتی که از روی کلید API شما استفاده می شود ، می توانید از سیستم Google Maps استفاده کنید. محدودیت های API فقط درخواست هایی را به API ها و SDK هایی که مشخص می کنید اجازه می دهد. برای هر کلید API داده شده ، می توانید در صورت لزوم محدودیت های API را مشخص کنید. لیست API های موجود شامل کلیه API های فعال شده در یک پروژه است.
محدودیت برنامه را برای یک کلید API تنظیم کنید
صفحه اعتبار پلتفرم Google Cloud Console را باز کنید.
کلید API را که می خواهید محدود کنید انتخاب کنید.
در صفحه کلید ویرایش API ، تحت محدودیت های اصلی ، تنظیم یک محدودیت برنامه را انتخاب کنید.
یکی از انواع محدودیت ها را انتخاب کرده و اطلاعات درخواستی را پس از لیست محدودیت تهیه کنید.
نوع محدودیت توضیحات وب سایت ها یک یا چند وب سایت مراجعه کننده را مشخص کنید. - طرح های ارجاع ارجاع جهانی پشتیبانی شده
https
وhttp
هستند. طرح های دیگر به درستی کار نمی کنند ، زیرا مرورگرهای وب مدرن به دلایل حریم خصوصی در درخواست های خروجی یک عنوان «ارجاع» ارسال نمی کنند. - همیشه رشته مراجعه کننده ، از جمله طرح پروتکل ، نام میزبان و درگاه اختیاری (به عنوان مثال ،
https://google.com
) را ارائه دهید. - می توانید از شخصیت های Wildcard استفاده کنید تا به همه زیر دامنه ها اجازه دهید. به عنوان مثال ،
https://*.google.com
تمام سایتهای پایان یافته را در.google.com
می پذیرد. - به عنوان مثال ، در هنگام مجاز بودن مراجعه کنندگان کامل ، مراقب باشید ، به عنوان مثال ،
https://google.com/some/path
، از آنجا که بیشتر مرورگرهای وب به دلایل حفظ حریم خصوصی مسیر را از درخواست های متقاطع باز می کنند.
آدرس های IP یک یا چند آدرس IPv4 یا IPv6 یا زیر شبکه ها را با استفاده از نماد CIDR مشخص کنید. آدرس های IP باید با آدرس منبعی که سرورهای پلتفرم Google Maps مشاهده می کنند مطابقت داشته باشد. اگر از ترجمه آدرس شبکه (NAT) استفاده می کنید ، این آدرس به طور معمول با آدرس IP عمومی دستگاه شما مطابقت دارد. برنامه های اندروید نام بسته Android (از پرونده AndroidManifest.xml
) و اثر انگشت گواهی امضای SHA-1 از هر برنامه Android را که می خواهید مجاز به آن باشید ، اضافه کنید. اگر از امضای برنامه PLAY استفاده می کنید ، برای واکشی اثر انگشت گواهی امضای ، به کار با ارائه دهندگان API مراجعه کنید. اگر کلید امضای خود را مدیریت می کنید ، به خودی خود را امضا کنید یا به دستورالعمل های محیط ساخت خود مراجعه کنید.برنامه های iOS شناسه بسته نرم افزاری هر برنامه iOS را که می خواهید مجاز به آن باشید اضافه کنید. برای توصیه های مربوط به محدودیت برنامه ، به محدودیت برنامه توصیه شده مراجعه کنید.
- طرح های ارجاع ارجاع جهانی پشتیبانی شده
ذخیره را انتخاب کنید.
محدودیت های API را برای یک کلید API تنظیم کنید
صفحه اعتبار پلتفرم Google Cloud Console را باز کنید.
کلید API را که می خواهید محدود کنید انتخاب کنید.
در صفحه کلید ویرایش API ، تحت محدودیت های API :
کلید محدود کردن را انتخاب کنید.
API های انتخابی را باز کنید و API یا SDK را که می خواهید برنامه خود را با استفاده از کلید API دسترسی پیدا کنید ، انتخاب کنید.
اگر API یا SDK ذکر نشده است ، باید آن را فعال کنید. برای جزئیات بیشتر ، برای فعال کردن یک یا چند API یا SDK مراجعه کنید.
ذخیره را انتخاب کنید.
محدودیت بعد از این مرحله بخشی از تعریف کلید API می شود. مطمئن باشید که جزئیات مناسب را ارائه می دهید و برای ذخیره محدودیت های اصلی API خود SAVE را انتخاب کنید. برای اطلاعات بیشتر ، به راهنمای کلید Get A API در اسناد مربوط به API خاص یا SDK که به آن علاقه دارید مراجعه کنید.
برای محدودیت های API توصیه شده ، به محدودیت های توصیه شده API مراجعه کنید.
استفاده از کلید API خود را بررسی کنید
اگر بعد از ایجاد آنها ، کلیدهای API را محدود می کنید ، یا می خواهید ببینید که API ها توسط یک کلید استفاده می شوند تا بتوانید آنها را محدود کنید ، می خواهید استفاده از کلید API خود را بررسی کنید. این مراحل به شما نشان می دهد که در آن از خدمات و روشهای API از یک کلید API استفاده می شود. اگر استفاده از خدمات پلت فرم Google Maps را مشاهده می کنید ، بررسی کنید که آیا برای جلوگیری از استفاده ناخواسته نیاز به اضافه کردن محدودیت های بیشتر دارید. شما می توانید از پلت فرم Google Maps Cloud Console Metrics Explorer استفاده کنید تا تعیین کنید که API و محدودیت های کاربردی برای اعمال در کلید API خود:
API هایی را که از کلید API شما استفاده می کنند تعیین کنید
گزارش های معیارهای زیر به شما امکان می دهد تعیین کنید که API ها از کلیدهای API خود استفاده می کنند. برای انجام موارد زیر از این گزارش ها استفاده کنید:
- ببینید چگونه از کلیدهای API شما استفاده می شود
- استفاده غیر منتظره
- به تأیید اینکه آیا یک کلید بلااستفاده برای حذف ایمن است ، کمک کنید. برای کسب اطلاعات در مورد حذف یک کلید API ، به حذف کلیدهای API استفاده نشده مراجعه کنید.
هنگام استفاده از محدودیت های API ، از این گزارش ها برای ایجاد لیستی از API ها برای مجوز یا اعتبار دادن به توصیه های محدودیت اصلی API تولید شده استفاده کنید. برای کسب اطلاعات بیشتر در مورد محدودیت های پیشنهادی ، به اعمال محدودیت های توصیه شده مراجعه کنید. برای کسب اطلاعات بیشتر در مورد استفاده از Metrics Explorer ، به ایجاد نمودارهای با Metrics Explorer مراجعه کنید.
به Explorer Metrics Console Google Console بروید
وارد سیستم شوید و پروژه را برای کلیدهای API که می خواهید بررسی کنید انتخاب کنید.
برای نوع API خود به صفحه Metrics Explorer بروید:
برای کلیدهای API با استفاده از هر API به جز نقشه های تعبیه شده API : به صفحه Explorer Metrics بروید.
برای کلیدهای API با استفاده از نقشه های تعبیه شده API : به Metrics Explorer بروید.
هر کلید API را بازرسی کنید:
Add Filter را انتخاب کنید.
Label
credential_id
را انتخاب کنید.مقدار متناسب با کلید مورد نظر برای بازرسی را انتخاب کنید.
توجه داشته باشید که این کلید API برای کدام API استفاده می شود و تأیید می کند که استفاده از آن انتظار می رود.
پس از اتمام ، حذف
فیلتر در انتهای خط فیلتر فعال برای حذف فیلتر اضافی.
برای هر کلید باقی مانده تکرار کنید.
کلیدهای API خود را فقط به API های مورد استفاده محدود کنید.
اگر استفاده غیرمجاز را مشاهده می کنید ، به استفاده غیرمجاز از یک کلید API استفاده کنید .
نوع صحیح محدودیت برنامه را با استفاده از Metrics Explorer انتخاب کنید
پس از تأیید و انجام هرگونه اقدامات لازم برای اطمینان از استفاده از کلید API شما فقط برای سرویس های Google Maps Platform مورد استفاده خود استفاده می شود ، همچنین اطمینان حاصل کنید که کلید API محدودیت های صحیح برنامه را دارد.
اگر کلید API شما محدودیت های اصلی API را توصیه کرده است ، آنها را اعمال کنید. برای اطلاعات بیشتر ، به اعمال محدودیت های اصلی API توصیه شده مراجعه کنید.
اگر کلید API شما توصیه های محدودیتی ندارد ، نوع محدودیت کاربردی را که باید اعمال شود ، بر اساس platform_type
گزارش شده با استفاده از Metrics Explorer تعیین کنید:
به Explorer Metrics Console Google Console بروید
وارد سیستم شوید و پروژه را برای API هایی که می خواهید بررسی کنید انتخاب کنید.
به این صفحه Explorer Metrics بروید: Metrics Explorer .
هر کلید API را بازرسی کنید:
Add Filter را انتخاب کنید.
Label
credential_id
را انتخاب کنید.مقدار متناسب با کلید مورد نظر برای بازرسی را انتخاب کنید.
پس از اتمام ، حذف
فیلتر در انتهای خط فیلتر فعال برای حذف فیلتر اضافی.
برای هر کلید باقی مانده تکرار کنید.
پس از داشتن نوع پلتفرم برای کلیدهای API خود ، محدودیت برنامه را برای آن
platform_type
اعمال کنید:PLATFORM_TYPE_JS
: محدودیت های وب سایت را روی کلید اعمال کنید.PLATFORM_TYPE_ANDROID
: محدودیت های برنامه Android را روی کلید اعمال کنید.PLATFORM_TYPE_IOS
: محدودیت های برنامه iOS را روی کلید اعمال کنید.PLATFORM_TYPE_WEBSERVICE
: ممکن است شما برای محدود کردن صحیح آن به محدودیت آدرس IP روی کلید اعتماد کنید.برای توصیه های مربوط به نقشه های استاتیک API و Street View Static API ، به Protect Static Web Usage API مراجعه کنید.
برای نقشه های تعبیه شده API ، به وب سایت هایی با نقشه های API تعبیه شده مراجعه کنید.
کلید API من با استفاده از چندین نوع پلتفرم است: ترافیک شما فقط با یک کلید API واحد به درستی ایمن نیست. شما باید به چندین کلید API مهاجرت کنید. برای اطلاعات بیشتر ، به مهاجرت به چندین کلید API مراجعه کنید.
برای هر برنامه از کلیدهای API جداگانه استفاده کنید
این عمل دامنه هر کلید را محدود می کند. اگر یک کلید API به خطر بیفتد ، می توانید بدون نیاز به به روزرسانی سایر کلیدهای API خود ، کلید تأثیرگذاری شده را حذف یا بچرخانید. در هر پروژه می توانید حداکثر 300 کلید API ایجاد کنید. برای اطلاعات بیشتر ، به محدودیت های کلیدهای API مراجعه کنید.
در حالی که یک کلید API در هر برنامه برای اهداف امنیتی ایده آل است ، می توانید تا زمانی که از همان نوع محدودیت برنامه استفاده کنند ، از کلیدهای محدود در چندین برنامه استفاده کنید.
محدودیت های اصلی API توصیه شده را اعمال کنید
برای برخی از دارندگان پروژه ، ویراستاران و سرپرستان کلید API ، کنسول Google Cloud محدودیت های کلیدی API را برای کلیدهای API نامحدود بر اساس استفاده و فعالیت پلت فرم Google Maps خود پیشنهاد می کند.
در صورت وجود ، توصیه ها به عنوان گزینه های از پیش پر شده در صفحه اعتبارنامه های Google Maps Platform ظاهر می شوند.
Google Maps Platform API ها و SDK های پشتیبانی شده توسط توصیه های خودکار
نقشه های JavaScript API ، از جمله خدمات مسیرها (میراث) ، سرویس ماتریس از راه دور (میراث) ، سرویس ارتفاع ، کلاس خدمات جغرافیایی ، ویجت خودکار (جدید) را قرار دهید ، API داده های خودکار را قرار دهید ، مکان های کتابخانه ، مکان ها و مکان های ویجت Autocplete Widget
نقشه های API استاتیک و نمای خیابان API استاتیک
نقشه های تعبیه شده API
نقشه SDK برای Android ، SDK را برای Android و Navigation SDK برای Android قرار می دهد
نقشه SDK برای iOS ، SDK را برای iOS قرار می دهد ، Swift SDK را برای iOS و Navigation SDK برای iOS قرار می دهد
دلایلی که ممکن است توصیه ای را مشاهده نکنید ، یا یک مورد ناقص
دلایل دیدن هیچ توصیه ای
شما (همچنین) از کلید API به غیر از خدمات Google Maps Platform یا خدمات پلت فرم MAP که هنوز توسط توصیه های خودکار پشتیبانی نمی شوند ، استفاده می کنید.
اگر استفاده از سایر خدمات را مشاهده می کنید ، بدون انجام موارد زیر ، توصیه را اعمال نکنید :
تأیید کنید که استفاده از API که در Metrics Console Console Console Explorer مشاهده می کنید قانونی است.
به صورت دستی خدمات مفقود شده را به لیست API ها اضافه کنید تا مجاز باشند.
به صورت دستی هرگونه محدودیت برنامه از دست رفته را برای خدمات اضافه شده به لیست API اضافه کنید . اگر دیگر اضافه شده شما به نوع متفاوتی از محدودیت های کاربردی نیاز دارد ، به مهاجرت به چندین کلید API مراجعه کنید.
کلید API شما در SDK های سمت مشتری یا API استفاده نمی شود.
شما از کلید API در یک برنامه یا وب سایت کم حجم استفاده می کنید که طی 60 روز گذشته استفاده نکرده است.
شما اخیراً یک کلید جدید ایجاد کرده اید ، یا اخیراً یک کلید موجود را در یک برنامه جدید مستقر کرده اید. اگر این مورد است ، فقط چند روز دیگر صبر کنید تا توصیه ها به روز شود.
شما در چندین برنامه کاربردی که به انواع متناقض محدودیت برنامه نیاز دارند ، از کلید API استفاده می کنید ، یا در برنامه ها یا وب سایت های مختلف بسیار مختلف از همان کلید API استفاده می کنید. در هر صورت ، به عنوان بهترین روش ، شما باید به چندین کلید مهاجرت کنید. برای اطلاعات بیشتر ، به مهاجرت به چندین کلید API مراجعه کنید.
دلایل دیدن یک توصیه ناقص
شما از کلید API در یک برنامه یا وب سایت کم حجم استفاده می کنید که طی 60 روز گذشته استفاده نکرده است.
شما اخیراً استفاده از یک کلید موجود را در یک API یا سرویس جدید شروع کرده اید ، و خط لوله توصیه محدودیت API AUTI ، هنوز معیارهای استفاده به روز شده را پردازش نکرده است. انتشار معیارهای استفاده ممکن است چند روز طول بکشد.
اگر استفاده از سایر خدمات را مشاهده می کنید ، بدون انجام موارد زیر ، توصیه را اعمال نکنید :
تأیید کنید که استفاده از API که در Metrics Console Console Console Explorer مشاهده می کنید قانونی است.
به صورت دستی خدمات مفقود شده را به لیست API ها اضافه کنید تا مجاز باشند.
به صورت دستی هرگونه محدودیت برنامه از دست رفته را برای خدمات اضافه شده به لیست API اضافه کنید . اگر دیگر اضافه شده شما به نوع متفاوتی از محدودیت های کاربردی نیاز دارد ، به مهاجرت به چندین کلید API مراجعه کنید.
به عنوان مثال ، به دلیل استفاده غیرمجاز ، به طور فوری نیاز به محدود کردن یک کلید دارید ، ممکن است یک یا دو روز صبر کنید تا توصیه های خود را به دست آورید.
دلایلی که ممکن است توصیه هایی را مشاهده کنید که در نمودارها قابل مشاهده نیست
برنامه یا وب سایت شما فقط پشت سر هم ترافیک بسیار کوتاه ارسال شده است. در این حالت ، از نمودار نمودار به نمایش یک جدول یا هر دو تغییر دهید ، زیرا استفاده هنوز در افسانه قابل مشاهده است. برای اطلاعات بیشتر ، به افسانه های کامل نمودار مراجعه کنید.
ترافیک شما از نقشه های تعبیه شده API است. برای راهنمایی ، به تعیین API هایی که از کلید API شما استفاده می کنند ، مراجعه کنید.
ترافیک برنامه یا وب سایت خارج از محدوده تاریخ موجود در Metrics Console Console Console Explorer است.
برای اعمال محدودیت های توصیه شده
صفحه اعتبار پلتفرم Google Cloud Console را باز کنید.
در صورت وجود ، محدودیت های توصیه شده را انتخاب کنید.
استفاده از API را انتخاب کنید تا تأیید کنید که از کلید API استفاده می شود. اگر به غیر از خدمات پلتفرم Google Maps می بینید ، مکث کنید تا مراحل توصیه فوق را به صورت دستی بررسی کنید. مراحل عیب یابی را در ابتدای بخش محدودیت های اصلی API توصیه شده را مشاهده کنید.
دوبار بررسی کنید که محدودیت های از پیش پر شده با وب سایت ها و برنامه هایی که انتظار دارید از کلید API خود استفاده کنید مطابقت دارد.
بهترین تمرین : هرگونه برنامه یا محدودیت های API را که به خدمات شما وابسته نیستند ، مستند و حذف کنید. اگر چیزی به دلیل وابستگی غیر منتظره شکسته شود ، می توانید برنامه های مورد نیاز یا API ها را به داخل اضافه کنید.
If you recognize that an app, website or API is clearly missing from your recommendation, add it manually or wait a couple of days to allow the recommendation to update.
If you need further help with your suggested recommendation, contact support .
Apply را انتخاب کنید.
What to do if your application gets rejected after applying a recommendation
If you notice that an app or website gets rejected after applying a restriction, look for the application restriction you need to add in the API response error message.
Client-side SDKs and APIs
- Browser and webview based apps
Modern browsers typically redact the
Referer
header in cross-origin request for privacy reasons, often stripping it down to theOrigin
. However, the exact behavior depends on the appliedreferrer-policy
of the hosting site, and may also vary, based on the user browser and version.Web applications using opaque or local URI schemes for loading content will typically have the rendering browser or webview completely redact the
Referer
header from any outgoing calls, which may cause requests to fail using API keys with website restrictions.For further guidance, see Host your browser based apps on a server .
Troubleshooting instructions for browser and webview based apps:
For Maps JavaScript API, see the browser debug console for details on how to authorize your application.
Exotic URI schemes are partially supported. If parts of your application don't work it an exotic URI scheme, even after authorizing the required referrer, you will likely need to host your application remotely on a server and load it over HTTPS (or HTTP).
If you need help with exotic URI schemes, contact support .
Other Maps Platform APIs will generally return the referrer you need to authorize in the API error response, presuming the client sent this information with the rejected request.
Exotic URI schemes are not supported.
- برنامه های اندروید
Use Android Debug Bridge (adb) or Logcat
- برنامه های iOS
Apps calling web services directly
For applications calling Maps Platform HTTPS REST API or gRPC endpoints directly without a client-side Google Maps Platform SDK, see below:
- Android and iOS apps
If your Android or iOS application calls Maps Platform services directly without using any of the available Google Maps Platform client SDKs, see Android apps and iOS apps for further troubleshooting tips, and Secure client-side web service calls for current best security practices for mobile use cases.
If your app logs Maps Platform API error responses, the above instructions for client-side SDKs may also prove useful for troubleshooting authentication issues.
- Server-side apps
Server-side applications relying on API keys are best secured through IP address restrictions. If you have applied IP address restrictions to your key, and your service logs Maps Platform API error responses, check your system logs for further information. The error response will include the server IP address that you need to authorize.
- Browser or webview based apps
While Maps Static API, Street View Static API more recent Google Maps Platform APIs will also support referrer restrictions, note that web browsers or webviews will likely restrict the
Referer
header to theOrigin
for cross-origin requests, and will likely omiy sending it altogether, eg, for locally accessed resources, or for resources served over protocols other than HTTP or HTTPS.If you can't use Maps JavaScript API in your application, and website restrictions don't work, see Secure client-side web service calls for how to issue Maps Platform web service calls securely from within your browser based client-side application.
Checking API restrictions
To check your required API restrictions, see Determine the APIs that use your API key .
If you are unable to determine which restrictions to apply:
- Document the current restrictions for future reference.
- Remove them temporarily while you investigate the issue. You can check your usage over time using the steps in Check your API key usage .
- If needed, contact support .
Delete unused API keys
Before you delete an API key, make sure that it is not used in production. If there is no successful traffic, the key is likely safe to delete. For more information, see Check your API key usage .
To delete an API key:
Open the Google Cloud console Google Maps Platform Credentials page.
Select the API key you want to delete.
Select the Delete button near the top of the page.
On the Delete credential page, select Delete .
Deleting an API key takes a few minutes to propagate. After propagation completes, any traffic using the deleted API key is rejected.
Be careful when rotating API keys
Rotating an API key creates a new key that has all the old key's restrictions. During this time window, both the old and new key are accepted, giving you a chance to migrate your apps to use the new key.
Before rotating an API key :
First try to restrict your API keys as described in Restrict your API keys .
If restricting your API key is not possible due to conflicting application restriction types, migrate to multiple new (restricted) keys as described in Migrate to multiple API keys . Migrating lets you control the migration and roll out timeline to the new API keys.
If the preceding suggestions aren't possible , and you must rotate your API key to prevent unauthorized use, then follow these steps:
Open the Google Cloud console Google Maps Platform Credentials page.
Open the API key you want to rotate.
At the top of the page, select Rotate key .
Optionally, change the API key name.
ایجاد را انتخاب کنید.
Update your applications to use the new key.
After you have updated your applications to using the new key, delete the old key by clicking the Delete the previous key button under the Previous Key section of the new API key page.
Migrate to multiple API keys
To migrate from using one API key for multiple apps to a single unique API key for each app, do the following:
Identify which apps need new keys :
- Web apps are the easiest to update, since you control all of the code. Plan to update all of your web-based apps' keys.
- Mobile apps are much harder, since your customers must update their apps before the new keys can be used.
Create and restrict the new keys : Add both an application restriction and at least one API restriction. For more information, see Recommended best practices .
Add the new keys to your apps : For mobile apps, this process may take months until all of your users update to the latest app with the new API key.
Split client-side and server-side usage into separate projects
If you need to call Google Maps Platform services both from server-side applications and directly from client-side applications running end-user devices, Google recommends splitting up your usage between two separate projects.
This approach lets you apply appropriate per-minute, per-user quota limits on most Google Maps Platform services on your client-side project, helping ensure all end users get their fair share fair of your overall project quota without impacting each other.
However, since per-user quota restrictions impact both client-side and server-side applications, if you also require high bandwidth for your server-side jobs, set up a separate project for this use case, configured with a higher, or no, per-user quota limit.
Disable unused services
Don't leave unused services enabled on a project, as this practice is vulnerable to abuse, especially if you have not restricted all your public API keys. As a best practice, only enable a service on a project once it is needed by your applications.
Adding API restrictions on a key prevent its use on services that it hasn't been authorized for, but API restrictions only apply to that specific key. Disable a service at the project level to prevents unauthorized use of the service on any key linked to the project.
Use client-side SDKs
When using provided client-side Google Maps Platform SDKs, you will always be able to apply proper restrictions to your API key to secure your service usage.
Using client-side SDKs will also allow you to adopt more advanced security mechanism, such as Firebase App Check on the Maps Platform API surfaces that support it. See Use App Check to secure your API key for further details.
If client-side SDKs are not available for your platform, see Secure your client-side web service calls .
For the availability of client-side Google Maps Platform SDKs for different platforms, see Recommended application and API restrictions .
Protect Static Web API usage
Static Web APIs, such as the Maps Static API and Street View Static API, are similar to web service API calls.
You call both using an HTTPS REST API, and you typically generate the API request URL on the server. However, instead of returning a JSON response, Static Web APIs generate an image that you can embed in generated HTML code. More importantly, it is generally the end-user client , not the server, that calls the Google Maps Platform service.
Use a digital signature
As a best practice, always use digital signatures in addition to an API key. Also, review how many unsigned requests you want to allow per day and adjust your unsigned request quotas accordingly.
For more details about digital signatures, see the Digital Signature Guide .
Protect your signing secret
To protect Static Web APIs, don't embed your API signing secrets directly in code or in the source tree, or expose them in client-side applications. Follow these best practices for protecting your signing secrets:
Generate your signed Maps Static API and Street View Static API request URLs server-side when serving a web page, or in response to a request from your mobile application .
For static web content, you can use the Sign a URL now widget on the Cloud Console Google Maps Platform Credentials page.
For dynamic web content, see the available URL request signing code samples .
Store signing secrets outside of your application's source code and source tree . If you put your signing secrets or any other private information in environment variables or include files that are stored separately and then share your code, then signing secrets are not included in the shared files. If you store signing secrets or any other private information in files, keep the files outside your application's source tree to keep your signing secrets out of your source code control system. This precaution is particularly important if you use a public source code management system, such as GitHub.
Protect web service API keys
For secure use of Google Maps Platform APIs and services from client-side apps, see Use client-side SDKs and Secure client-side web service calls .
Store API keys outside of your application's source code or source tree . If you put your API keys or any other information in environment variables or include files that are stored separately and then share your code, the API keys are not included in the shared files. This is particularly important if you use a public source code management system, such as GitHub.
To help shield your web service API key against accidental use, Google recommends applying API restrictions to any key used for Maps Platform. Furthermore, also applying IP address restrictions to your web service key will protect it against help protect it against unauthorized use from other source IP addresses, even if the key accidentally leaks.
Use OAuth for server-side apps
OAuth 2.0 is an open standard for access delegation.
While the OAuth 2.0 protocol supports use cases, where an end user authorizes an application to access personal data on their behalf, the intended use case for OAuth 2.0 with Maps Platform is for the developer to utilize temporary access tokens for authorizing their application to call an API on behalf of their Google Cloud project service account with the permissions of the service account.
As a service account may have extremely broad permissions, OAuth 2.0 is recommended for authorizing server-to-server calls between a developer's trusted server-side applications and Google's Maps Platform servers.
For client-side applications running on end user devices, other authentication methods, such as API keys, are recommended.
If you want to use OAuth 2.0 to authorize server-to-server traffic, look for the OAuth topic in your API documentation.
For example, here is the OAuth topic for the Address Validation API .
Secure client-side web service calls
If client-side SDKs are not available, see the recommendations below.
از سرور پروکسی استفاده کنید
Using a secure proxy server provides a solid source for interacting with a Google Maps Platform web service endpoint from a client-side application without exposing your API key, signing secret or Google Cloud service account to unauthorized users.
نکات کلیدی:
* Construct your Google Maps Platform requests on the proxy server.
**Don't** allow clients to relay arbitrary API calls using the proxy.
* Post-process the Google Maps Platform responses on your proxy server.
Filter out data that the client doesn't need.
For more information about using a proxy server, see Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries .
Secure direct mobile web service calls
If you are unable to set up a secure proxy server for your client-side app, secure your application using the following steps:
Use HTTP headers:
Android : Use the
X-Android-Package
andX-Android-Cert
HTTP headers.iOS : Use the
X-Ios-Bundle-Identifier
HTTP header.
Add the corresponding application restrictions to your Android or iOS key.
Before you consider issuing calls directly from your mobile application to a Google Maps Platform REST API web service, verify that requests with incorrect Android or iOS application identifiers are rejected.
If Android and iOS application restrictions are not supported on the tested endpoint, Google strongly recommends that you use a secure proxy server between your mobile clients and the Google Maps Platform web service endpoint.
Tips for Android applications:
Before you integrate your Android application with Google Maps Platform services, verify that your application ID (also called package name) is formatted correctly. For details, see Configure app module . in the Android documentation.
To pass
X-Android-Package
directly from your application, look it up programmatically usingContext.getPackageName()
.To pass
X-Android-Cert
directly from your applications, calculate the required SHA-1 fingerprint of your application signing certificates, accessible throughPackageInfo.signingInfo
.If you authorize your Android application using the Google Cloud console, note that the UI expects the SHA-1 fingerprint to be a colon-delimited string, eg,
00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33
. However, thegcloud
tool and the API keys API expect the hexadecimal string without delimiters.
Tips for iOS applications:
Before you integrate your iOS application with Google Maps Platform services, verify that your Bundle ID is formatted correctly .
You should typically always pass the Bundle ID of your main bundle in the
X-Ios-Bundle-Identifier
header, when authorizing your iOS application.
For further information, refer to articles Manage API keys and Use API keys to access APIs .
Host your browser based apps on a server
Frameworks, such as Apache Cordova, allow you to conveniently create multi-platform hybrid apps running inside a webview. However, API key website restrictions are not guaranteed to work correctly, unless your web app is loaded using HTTP or HTTPS from a website that you control and have authorized.
Bundled resources, loaded locally from within a hybrid application, or accessed using a local file URL will in many cases prevent referrer based authorization from working as the browser engine powering your webview will omit sending the Referer
header. To avoid this, host your web applications server-side, not client-side.
Alternatively, for mobile applications, consider using available native Google Maps Platform Android and iOS SDKs, instead of using a web based SDK.
Use App Check to secure your API key
Certain Maps SDKs and APIs allow you to integrate with Firebase App Check . App Check provides protection for calls from your app to Google Maps Platform by blocking traffic that comes from sources other than legitimate apps. It does this by checking for a token from an attestation provider. Integrating your apps with App Check helps to protect against malicious requests, so you're not charged for unauthorized API calls.
App Check integration instructions:
- مکانهای SDK برای iOS
- مکانهای SDK برای Android
- Maps JavaScript API
- Place class, Maps JavaScript API
Handle unauthorized use of an API key
If you detect use of your API key that is unauthorized, do the following to address the problem:
Restrict your keys : If you've used the same key in multiple apps, migrate to multiple API keys, and use separate API keys for each app. برای جزئیات بیشتر، نگاه کنید به:
If you use the Places SDK or the Maps Javascript API, you can also use App Check to secure your API Key .
Only replace or rotate keys if the following is true:
You detect unauthorized usage on keys that either cannot be restricted or are already restricted, and App Check is not applicable.
You want to move more quickly to secure your API key and stop the abuse, even if it might impact legitimate traffic from your application.
Before proceeding, read through Be careful when rotating API keys .
If you are still having issues or need help, contact support .
Recommended application and API restrictions
The following sections suggest appropriate application and API restrictions for each Google Maps Platform API, SDK or service.
Recommended API Restrictions
The following guidelines for API restrictions apply to all Google Maps Platform services:
Restrict your API key to only the APIs you are using it for, with the following exceptions:
If your app uses the Places SDK for Android or Places SDK for iOS, authorize Places API (New) or Places API, depending on the SDK versions you use. 1
If your app uses Maps JavaScript API, always authorize it on your key.
If you also use any of the following Maps JavaScript API services, you should also authorize these corresponding APIs:
خدمات API restriction Directions Service (Legacy) Directions API (Legacy) Distance Matrix Service (Legacy) Distance Matrix API (Legacy) Elevation Service Elevation API Geocoding Service API کدگذاری جغرافیایی Place class, Place Autocomplete Widget (New) & Place Autocomplete Data API Places API (New) 2 Places Library, Places Service & Place Autocomplete Widget Places API 2
1 For more details, see the Places SDK for Android and Places SDK for iOS documentation.
2 If you are unsure if you need to authorize Places API (New) or Places API, see the Maps JavaScript API documentation.
چند نمونه:
You are using the Maps SDK for Android and Places SDK for Android, so you include the Maps SDK for Android and Places API (New) as API restrictions.
Your website uses the Maps JavaScript API Elevation Service and the Maps Static API, so you add API restrictions for all of the following APIs:
- Maps JavaScript API
- Elevation API
- Maps Static API
Recommended application Restriction
وب سایت ها
For websites using Maps JavaScript API services, Maps Static API or Street View Static API or calling recent Google Maps Platform services directly over the HTTPS REST API or gRPC, use the Websites application restriction:
1 For mobile applications, consider using the native Maps SDK for Android and Maps SDK for iOS .
2 For mobile applications, consider using the native Places SDK for Android and Places SDK for iOS .
3 See also Protect Static Web API usage .
Websites with the Maps Embed API
While using the Maps Embed API is no charge, you should still restrict any used API key to prevent abuse on other services.
Best practice : Create a separate API key for Maps Embed API use, and restrict this key to only the Maps Embed API. This restriction sufficiently secures the key, preventing its unauthorized use on any other Google service. For full control over where your Maps Embed API key can be used from, Google recommends also applying Websites application restrictions.
If you are unable to separate your Maps Embed API usage to a separate API key, secure your existing key using the Websites application restriction.
Apps and servers using web services
For servers and client-side apps from trusted corporate internal networks using web services together with API keys, use the IP addresses
application restriction.
Use for apps and servers using these APIs:
4 For mobile applications, consider using the Navigation SDK.
5 For safe mobile usage, use a secure proxy server .
6 For client-side applications, consider using the native geolocation service offered by the platform; for example, W3C Geolocation for web browsers, LocationManager or the Fused Location Provider API for Android, or the Apple Core Location framework for iOS.
7 For mobile applications, consider using the native Places SDK for Android and Places SDK for iOS .
8 For safe client-side usage, use a secure proxy server .
برنامه های اندروید
For apps on Android, use the Android apps
application restriction. Use for apps using these SDKs:
In addition, prevent accidentally checking API keys into version control by using the Secrets Gradle Plugin to inject secrets from a local file rather than storing them in the Android Manifest.
برنامه های iOS
For apps on iOS, use the iOS apps
application restriction. Use for apps and servers using these SDKs:
در ادامه مطلب
- کلیدهای API را مدیریت کنید
- از کلیدهای API برای دسترسی به APIها استفاده کنید
- Optimize your Google Maps Platform usage with quotas (video)
- How to generate and restrict API keys for the Google Maps Platform (video)
- Restricting API keys
- Securing API keys when using Static Maps and Street View APIs
- 15 Google Maps platform Best Practices