راهنمایی‌های امنیتی «پلاتفرم Google Maps»

برنامه‌ها و پروژه‌هایی که از «میاناهای برنامه‌سازی کاربردی» و «کیت‌های توسعه نرم‌افزار» «پلاتفرم Google Maps» استفاده می‌کنند باید از کلیدهای میانای برنامه‌سازی کاربردی یا درصورت پشتیبانی، از OAuth 2.0 برای اصالت‌سنجی خود استفاده کنند.

این روال‌های مطلوب به شما نشان می‌دهد که چگونه دسترسی به Maps Platform را ایمن کنید.

اگر می‌خواهید از OAuth 2.0 برای مجاز کردن ترافیک سرور به سرور استفاده کنید، موضوع OAuth را در مستندات API خود جستجو کنید. برای جزئیات بیشتر، به استفاده از OAuth برای برنامه‌های سمت سرور مراجعه کنید.

علاوه‌بر اعمال محدودیت‌های برنامه و کلید میانای برنامه‌سازی کاربردی، از هرگونه روش‌های امنیتی که برای محصولات خاص Google Maps Platform اعمال می‌شود پیروی کنید. برای مثال، «میانای برنامه‌سازی کاربردی جاوا اسکریپت در Maps» را در محدودیت‌های توصیه‌شده برنامه و میانای برنامه‌سازی کاربردی در زیر ببینید.

اگر کلیدهای میانای برنامه‌سازی کاربردی شما درحال استفاده هستند، توصیه‌های زیر را در اگر کلید میانای برنامه‌سازی کاربردی درحال استفاده را محدود می‌کنید مرور کنید.

برای جزئیات بیشتر درباره امضاهای دیجیتال، که توسط Maps Static API و Street View Static API پشتیبانی می‌شوند، به راهنمای امضای دیجیتال مراجعه کنید.

روال‌های مطلوب توصیه‌شده

برای افزایش امنیت و جلوگیری از صدور صورت‌حساب برای استفاده غیرمجاز، این روال‌های مطلوب امنیت API را برای همه APIها، کیت‌های توسعه نرم‌افزار، یا سرویس‌های «پلاتفرم Google Maps» دنبال کنید:

کلیدهای میانای برنامه‌سازی کاربردی خود را محدود کنید

استفاده از کلیدهای API جداگانه برای هر برنامه

حذف کلیدهای میانای برنامه‌سازی کاربردی استفاده‌نشده

بررسی استفاده از کلید میانای برنامه‌سازی کاربردی

هنگام چرخش کلیدهای API احتیاط کنید

استفاده سمت کارخواه و سمت سرور را در پروژه‌های جداگانه تقسیم کنید

غیرفعال کردن سرویس‌های استفاده‌نشده

توصیه‌های اضافی برای برنامه‌های سمت کارخواه

استفاده از کیت‌های توسعه نرم‌افزار سمت مشتری

تماس‌های سرویس وب سمت کارخواه ایمن

توصیه‌های بیشتر برای وب‌سایت‌ها یا برنامه‌های سمت کارخواه که از Static Web API استفاده می‌کنند

محافظت از استفاده از Static Web API

توصیه‌های اضافی برای برنامه‌های سمت سرور که از سرویس‌های وب استفاده می‌کنند

محافظت از کلیدهای میانای برنامه‌سازی کاربردی سرویس وب

استفاده از OAuth برای برنامه‌های سمت سرور

اگر درحال محدود کردن یا چرخاندن کلید میانای API درحال استفاده هستید

  • قبل‌از تغییر کلید API، استفاده از کلید API خود را بررسی کنید این مرحله به‌ویژه اگر درحال افزودن محدودیت‌هایی برای کلیدی هستید که ازقبل در یک برنامه تولید استفاده می‌شود، مهم است.

  • پس‌از تغییر کلید، همه برنامه‌هایتان را با کلیدهای جدید API به‌روز کنید، درصورت نیاز.

  • اگر کلید API شما لو نرفته باشد و به‌طور فعال مورد سوءاستفاده قرار نگیرد، می‌توانید برنامه‌هایتان را با سرعت خودتان به چندین کلید API جدید انتقال دهید و کلید API اصلی را دست‌نخورده بگذارید تا زمانی که فقط یک نوع ترافیک مشاهده کنید، و کلید API را بتوانید با یک نوع محدودیت برنامه به‌طور ایمن محدود کنید بدون اینکه اختلالات ناخواسته در سرویس ایجاد شود.

    برای دریافت دستورالعمل‌های بیشتر، به انتقال به چند کلید API مراجعه کنید.

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

  • اگر کلید API شما لو رفته است، باید سریع‌تر اقدام کنید تا کلید API خود را ایمن کنید و سوءاستفاده را متوقف کنید. در برنامه‌های Android و iOS، کلیدها تا زمانی که مشتریان برنامه‌هایشان را به‌روز نکنند جایگزین نمی‌شوند. به‌روزرسانی یا جایگزینی کلیدها در صفحه‌های وب یا در برنامه‌های سمت سرور بسیار ساده‌تر است، اما ممکن است همچنان نیاز به برنامه‌ریزی دقیق و کار سریع داشته باشد.

    برای اطلاعات بیشتر، رسیدگی به استفاده غیرمجاز از کلید API را ببینید.

اطلاعات بیشتر

محدودیت‌های توصیه‌شده برای برنامه و میانای برنامه‌سازی کاربردی

محدود کردن کلیدهای میانای API

بهترین روش این است که همیشه کلیدهای میانای API خود را با یک نوع محدودیت برنامه و یک یا چند محدودیت میانای API محدود کنید. برای محدودیت‌های پیشنهادی براساس API، کیت توسعه نرم‌افزار، یا سرویس جاوا اسکریپت، محدودیت‌های توصیه شده برنامه و API در زیر را ببینید.

  • محدودیت‌های برنامه می‌توانید استفاده از کلید API را به پلاتفرم‌های خاصی محدود کنید: برنامه‌های Android یا iOS، یا وب‌سایت‌های خاص برای برنامه‌های سمت مشتری، یا نشانی‌های IP خاص یا زیرشبکه‌های CIDR برای برنامه‌های سمت سرور که تماس‌های API وب‌سرویس REST را صادر می‌کنند.

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

  • محدودیت‌های میانای برنامه‌سازی کاربردی می‌توانید مشخص کنید کلید API شما در کدام «میاناهای برنامه‌سازی کاربردی پلاتفرم Google Maps»، کیت‌های توسعه نرم‌افزار، یا خدمات می‌تواند استفاده شود. محدودیت‌های API فقط به درخواست‌های API و SDK که مشخص می‌کنید اجازه می‌دهد. برای هر کلید API، می‌توانید هر تعداد محدودیت API که نیاز دارید مشخص کنید. فهرست میاناهای برنامه‌سازی کاربردی دردسترس شامل همه میاناهای برنامه‌سازی کاربردی فعال‌شده در پروژه است.

تنظیم محدودیت برنامه برای کلید API

  1. کنسول Google Cloud صفحه اطلاعات اعتباری پلاتفرم Google Maps را باز کنید.

  2. کلید میانای API (کلید میانای برنامه‌سازی کاربردی) موردنظرتان را برای محدود کردن انتخاب کنید.

  3. در صفحه ویرایش کلید API، در بخش محدودیت‌های کلید، تنظیم محدودیت برنامه را انتخاب کنید.

    صفحه ویرایش کلید میانای برنامه‌سازی کاربردی

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

    نوع محدودیت شرح
    وب‌سایت‌ها یک یا چند وب‌سایت ارجاع‌دهنده را مشخص کنید.
    • طرح‌های نشانی وب ارجاع‌دهنده که به‌طور جهانی پشتیبانی می‌شوند https و http هستند. عملکرد صحیح طرح‌های دیگر تضمین نمی‌شود، زیرا مرورگرهای وب مدرن به‌دلایل حریم خصوصی، سرایند «Referer» را در درخواست‌های خروجی ارسال نمی‌کنند.
    • همیشه رشته ارجاع‌دهنده کامل را ارائه دهید، ازجمله طرح پروتکل، نام میزبان، و درگاه اختیاری (برای مثال، https://google.com).
    • می‌توانید از نویسه‌های عام برای مجاز کردن همه زیردامنه‌ها استفاده کنید. برای مثال، https://*.google.com همه سایت‌هایی را که به .google.com ختم می‌شوند می‌پذیرد.
    • هنگام مجاز کردن ارجاع‌دهنده‌های مسیر کامل، برای مثال، https://google.com/some/path، مراقب باشید، زیرا اکثر مرورگرهای وب به‌دلایل حریم خصوصی مسیر را از درخواست‌های بین مبدأ حذف می‌کنند.
    آدرس IP یک یا چند نشانی IPv4 یا IPv6، یا زیرشبکه‌ها را بااستفاده از نشانه‌گذاری CIDR مشخص کنید. نشانی‌های IP باید با نشانی منبعی که سرورهای «پلاتفرم Google Maps» مشاهده می‌کنند مطابقت داشته باشد. اگر از ترجمه نشانی شبکه (NAT) استفاده می‌کنید، این نشانی معمولاً با نشانی IP عمومی دستگاه شما مطابقت دارد.
    Android Apps

    نام بسته Android (از فایل AndroidManifest.xml) و اثر انگشت گواهینامه امضای SHA-1 هر برنامه Android را که می‌خواهید مجاز کنید اضافه کنید.

    1. برنامه‌های Android را انتخاب کنید.
    2. روی + افزودن کلیک کنید.
    3. نام بسته و اثر انگشت گواهینامه SHA-1 را وارد کنید. برای مثال:
      com.example.android.mapexample
      BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    4. روی ذخیره کلیک کنید.

    دو نوع گواهینامه وجود دارد:

    • گواهینامه اشکال‌زدایی: فقط از این نوع گواهینامه با برنامه‌هایی که درحال آزمایش آن‌ها هستید و سایر کد غیرتولیدی استفاده کنید. سعی نکنید برنامه‌ای را که با گواهینامه اشکال‌زدایی امضا شده است منتشر کنید. ابزارهای «کیت توسعه نرم‌افزار Android» این گواهینامه را به‌طور خودکار هنگام اجرای ساخت اشکال‌زدایی تولید می‌کنند.
    • گواهینامه انتشار: وقتی آماده انتشار برنامه خود در فروشگاه برنامه هستید، از این گواهینامه استفاده کنید. ابزارهای «کیت توسعه نرم‌افزار Android» این گواهینامه را هنگام اجرای ساخت نسخه پخش تولید می‌کنند.

    برای کسب اطلاعات بیشتر درباره امضای برنامه Android و گواهینامه‌ها، راهنمای امضای برنامه را ببینید.

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

    برنامه‌های iOS

    شناسه بسته هر برنامه iOS را که می‌خواهید مجاز کنید اضافه کنید.

    1. برنامه‌های iOS را انتخاب کنید.
    2. روی + افزودن کلیک کنید.
    3. شناسه بسته را اضافه کنید تا درخواست‌های برنامه iOS با آن شناسه را بپذیرید.
    4. روی ذخیره کلیک کنید.

    برای توصیه‌های مربوط به محدودیت برنامه، محدودیت برنامه توصیه‌شده را ببینید.

  5. ذخیره کردن را انتخاب کنید.

تنظیم محدودیت‌های میانای برنامه‌سازی کاربردی برای کلید میانای برنامه‌سازی کاربردی

  1. صفحه اعتبارنامه‌های Google Maps Platform را در کنسول Google Cloud باز کنید.

  2. کلید API موردنظر برای محدود کردن را انتخاب کنید.

  3. در صفحه ویرایش کلید API، در بخش محدودیت‌های API:

    • محدود کردن کلید را انتخاب کنید.

    • انتخاب میاناهای برنامه‌سازی کاربردی را باز کنید و میاناهای برنامه‌سازی کاربردی یا کیت‌های توسعه نرم‌افزار موردنظرتان را برای دسترسی برنامه بااستفاده از کلید میانای برنامه‌سازی کاربردی انتخاب کنید.

    اگر میانای برنامه‌سازی کاربردی یا کیت توسعه نرم‌افزار در فهرست نیست، باید آن را فعال کنید. برای جزئیات، به برای فعال کردن یک یا چند میانای برنامه‌سازی کاربردی یا کیت توسعه نرم‌افزار مراجعه کنید.

    محدود کردن میانای برنامه‌سازی کاربردی در صفحه
    «ویرایش کلید میانای برنامه‌سازی کاربردی»

  4. ذخیره کردن را انتخاب کنید.

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

برای محدودیت‌های توصیه شده API، به محدودیت‌های توصیه شده API مراجعه کنید.

بررسی استفاده از کلید میانای برنامه‌سازی کاربردی

اگر کلیدهای میانای API را پس‌از ایجاد شدن محدود می‌کنید، یا اگر می‌خواهید ببینید کدام میاناهای برنامه‌سازی کاربردی توسط کلید استفاده می‌شود تا بتوانید آن‌ها را محدود کنید، باید استفاده از کلید میانای API را بررسی کنید. این مراحل به شما نشان می‌دهد که کلید API در کدام سرویس‌ها و روش‌های API استفاده می‌شود. اگر استفاده‌ای فراتر از سرویس‌های «پلاتفرم Google Maps» مشاهده کردید، بررسی کنید تا ببینید آیا باید محدودیت‌های بیشتری اضافه کنید تا از استفاده ناخواسته جلوگیری کنید. می‌توانید از کاوشگر «سنجه‌های کنسول ابری Google Maps Platform» برای کمک به تعیین اینکه کدام محدودیت‌های برنامه و میانای برنامه‌سازی کاربردی را برای کلید میانای برنامه‌سازی کاربردی‌تان اعمال کنید استفاده کنید:

تعیین میاناهای برنامه‌سازی کاربردی که از کلید میانای برنامه‌سازی کاربردی شما استفاده می‌کنند

گزارش‌های سنجه‌های زیر به شما امکان می‌دهد تعیین کنید کدام APIها از کلیدهای API شما استفاده می‌کنند. از این گزارش‌ها برای انجام کارهای زیر استفاده کنید:

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

  1. به کاوشگر سنجه‌ها در کنسول Google Cloud بروید

  2. به سیستم وارد شوید و پروژه‌ای را که می‌خواهید کلیدهای میانای API آن را بررسی کنید انتخاب کنید.

  3. به صفحه «کاوشگر سنجه‌ها» برای نوع API خود بروید:

    • برای کلیدهای API که از هر API به‌جز Maps Embed API استفاده می‌کنند: به صفحه Metrics explorer بروید.

    • برای کلیدهای میانای برنامه‌سازی کاربردی که از Maps Embed API استفاده می‌کنند: به کاوشگر سنجه‌ها بروید.

  4. هر کلید میانای برنامه‌سازی کاربردی را بررسی کنید:

    1. افزودن فیلتر را انتخاب کنید.

    2. برچسب credential_id را انتخاب کنید.

    3. مقدار مربوط به کلیدی را که می‌خواهید بازرسی کنید انتخاب کنید.

    4. توجه کنید که این کلید API برای کدام APIها استفاده می‌شود و تأیید کنید که استفاده از آن موردانتظار است.

    5. پس‌از انجام این کار، برداشتن فیلتر را در انتهای خط فیلتر فعال انتخاب کنید تا فیلتر اضافی حذف شود.

  5. این مراحل را برای کلیدهای باقی‌مانده تکرار کنید.

  6. کلیدهای میانای API خود را فقط به میاناهای برنامه‌سازی کاربردی که استفاده می‌شوند محدود کنید.

  7. اگر متوجه استفاده غیرمجاز شدید، به رسیدگی به استفاده غیرمجاز از کلید API مراجعه کنید.

بااستفاده از «کاشف معیارها»، نوع صحیح محدودیت برنامه را انتخاب کنید

پس‌از درستی‌سنجی و انجام اقدامات لازم برای اطمینان از اینکه کلید میانای برنامه‌سازی کاربردی شما فقط برای سرویس‌های «پلاتفرم Google Maps» که از آن استفاده می‌کند به‌کار می‌رود، همچنین درستی‌سنجی کنید که کلید میانای برنامه‌سازی کاربردی محدودیت‌های برنامه صحیح را داشته باشد.

اگر کلید API شما محدودیت‌های کلید API توصیه‌شده دارد، آن‌ها را اعمال کنید. برای اطلاعات بیشتر، اعمال محدودیت‌های کلید API توصیه‌شده را ببینید.

اگر کلید میانای برنامه‌سازی کاربردی شما توصیه‌های محدودیت ندارد، نوع محدودیت برنامه را برای اعمال کردن تعیین کنید، براساس platform_type گزارش‌شده بااستفاده از کاوشگر «سنجه‌ها»:

  1. به کاوشگر سنجه‌ها در کنسول Google Cloud بروید

  2. به سیستم وارد شوید و پروژه مربوط به APIهایی را که می‌خواهید بررسی کنید انتخاب کنید.

  3. به این صفحه «کاوشگر سنجه‌ها» بروید: کاوشگر سنجه‌ها.

  4. هر کلید میانای برنامه‌سازی کاربردی را بازرسی کنید:

    1. افزودن فیلتر را انتخاب کنید.

    2. برچسب credential_id را انتخاب کنید.

    3. مقدار مربوط به کلیدی را که می‌خواهید بازرسی کنید انتخاب کنید.

    4. پس‌از انجام این کار، برداشتن فیلتر را در انتهای خط فیلتر فعال انتخاب کنید تا فیلتر اضافی حذف شود.

  5. این مراحل را برای کلیدهای باقی‌مانده تکرار کنید.

  6. پس‌از اینکه نوع پلاتفرم را برای کلیدهای میانای 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، به محافظت از استفاده از Web API ایستا مراجعه کنید.

    برای توصیه‌های Maps Embed API، به وب‌سایت‌های دارای Maps Embed API مراجعه کنید.

    کلید میانای برنامه‌سازی کاربردی من از چند نوع پلاتفرم استفاده می‌کند: ترافیک شما نمی‌تواند فقط با یک کلید میانای برنامه‌سازی کاربردی به‌درستی ایمن شود. باید به چند کلید میانای برنامه‌سازی کاربردی انتقال دهید. برای اطلاعات بیشتر، به انتقال به چندین کلید API مراجعه کنید.

برای هر برنامه از کلیدهای میانای API جداگانه استفاده کنید

این روش محدوده هر کلید را محدود می‌کند. اگر یکی از کلیدهای API لو رفت، می‌توانید کلید تحت‌تأثیر قرارگرفته را بدون نیاز به به‌روزرسانی سایر کلیدهای API خود حذف یا چرخش دهید. می‌توانید حداکثر ۳۰۰ کلید میانای API برای هر پروژه ایجاد کنید. برای اطلاعات بیشتر، محدودیت‌های کلیدهای میانای برنامه‌سازی کاربردی را ببینید.

اگرچه برای اهداف امنیتی، یک کلید API برای هر برنامه ایده‌آل است، می‌توانید از کلیدهای محدودشده در چندین برنامه استفاده کنید، به‌شرطی که از یک نوع محدودیت برنامه استفاده کنند.

اعمال محدودیت‌های کلید میانای برنامه‌سازی کاربردی توصیه‌شده

برای برخی‌از مالکان پروژه، ویرایشگران، و سرپرستان کلید API، «واحد مدیریت Google Cloud» محدودیت‌های کلید API خاصی را برای کلیدهای API بدون محدودیت براساس استفاده و فعالیت آن‌ها در Google Maps Platform پیشنهاد می‌دهد.

درصورت دردسترس بودن، توصیه‌ها به‌عنوان گزینه‌های ازپیش تکمیل‌شده در صفحه اطلاعات اعتباری پلاتفرم Google Maps نشان داده می‌شوند.

بررسی کنید.

کیت‌های توسعه نرم‌افزار و میاناهای برنامه‌سازی کاربردی Google Maps Platform پشتیبانی‌شده توسط توصیه‌های خودکارسازی‌شده

  • ‫Maps JavaScript API، شامل Directions Service (Legacy)، Distance Matrix Service (Legacy)، Elevation Service، Geocoding Service Place class، Place Autocomplete Widget (New)، Place Autocomplete Data API، Places Library، Places Service، Place Autocomplete Widget، و Places UI Kit

  • Maps Static API و Street View Static API

  • Maps Embed API

  • کیت توسعه نرم‌افزار Maps برای Android، کیت توسعه نرم‌افزار Navigation برای Android، کیت توسعه نرم‌افزار Places برای Android، و کیت میانای کاربر Places در Android

  • کیت توسعه نرم‌افزار Google Maps برای iOS، کیت توسعه نرم‌افزار پیمایش برای iOS، کیت توسعه نرم‌افزار مکان‌ها برای iOS، کیت توسعه نرم‌افزار مکان‌ها برای iOS با زبان برنامه‌نویسی Swift، و کیت واسط کاربر مکان‌ها در iOS.

دلایلی که ممکن است توصیه‌ای را نبینید یا توصیه‌ای ناقص ببینید

دلایل عدم نمایش توصیه

  • شما (همچنین) از کلید API در سرویس‌هایی غیراز Google Maps Platform یا سرویس‌های Maps Platform که هنوز توسط توصیه‌های خودکار پشتیبانی نمی‌شوند استفاده می‌کنید.

    اگر در سرویس‌های دیگر استفاده می‌بینید، بدون اینکه ابتدا موارد زیر را انجام دهید، توصیه را اعمال نکنید:

    1. درستی‌سنجی کنید که استفاده از API که در کاوشگر «سنجه‌های» کنسول Google Cloud می‌بینید قانونی است.

    2. سرویس‌های مفقود را به‌صورت دستی به فهرست میاناهای برنامه‌سازی کاربردی که باید مجاز شوند اضافه کنید.

    3. محدودیت‌های برنامه ازدست‌رفته برای سرویس‌های اضافه‌شده به فهرستگان میانای برنامه‌سازی کاربردی را به‌صورت دستی اضافه کنید. اگر افزوده‌های دیگر شما به نوع دیگری از محدودیت‌های برنامه نیاز دارند، به انتقال به چندین کلید API مراجعه کنید.

  • از کلید میانای API شما در میاناهای برنامه‌سازی کاربردی یا کیت‌های توسعه نرم‌افزار سمت کارخواه استفاده نمی‌شود.

  • از کلید API در برنامه یا وب‌سایت کم‌حجمی استفاده می‌کنید که در ۶۰ روز گذشته استفاده‌ای نداشته است.

  • خیلی اخیراً کلید جدیدی ایجاد کرده‌اید، یا خیلی اخیراً کلید موجودی را در برنامه جدیدی پیاده‌سازی کرده‌اید. اگر این‌طور است، چند روز دیگر صبر کنید تا توصیه‌ها به‌روز شوند.

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

دلایل دیدن توصیه ناقص

  • از کلید API در برنامه یا وب‌سایت کم‌حجمی استفاده می‌کنید که در ۶۰ روز گذشته استفاده‌ای نداشته است.

  • به‌تازگی شروع به استفاده از کلید موجود در میانای برنامه‌سازی کاربردی یا سرویس جدیدی کرده‌اید و خط لوله توصیه محدودیت کلید میانای برنامه‌سازی کاربردی خودکار هنوز سنجه‌های استفاده به‌روزشده را پردازش نکرده است. انتشار سنجه‌های استفاده ممکن است چند روز طول بکشد.

    اگر در سرویس‌های دیگر استفاده می‌بینید، بدون اینکه ابتدا موارد زیر را انجام دهید، توصیه را اعمال نکنید:

    1. درستی‌سنجی کنید که استفاده از API که در کاوشگر «سنجه‌های» کنسول Google Cloud می‌بینید قانونی است.

    2. سرویس‌های مفقود را به‌صورت دستی به فهرست میاناهای برنامه‌سازی کاربردی که باید مجاز شوند اضافه کنید.

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

    4. مگر اینکه فوراً نیاز به محدود کردن کلید داشته باشید، برای مثال، به‌دلیل استفاده غیرمجاز، شاید بهتر باشد یک یا دو روز صبر کنید تا توصیه‌ها به‌روز شوند.

دلایلی که ممکن است توصیه‌هایی را ببینید که در نمودارها قابل‌مشاهده نیستند

  1. صفحه اعتبارنامه‌های Google Maps Platform را در کنسول Google Cloud باز کنید.

  2. درصورت موجود بودن، اعمال محدودیت‌های توصیه‌شده را انتخاب کنید.

    اعمال محدودیت‌های توصیه‌شده

  3. بررسی استفاده از میانای برنامه‌سازی کاربردی را انتخاب کنید تا بررسی کنید کلید میانای برنامه‌سازی کاربردی در کدام سرویس‌ها استفاده می‌شود. اگر سرویس‌هایی به‌جز «پلاتفرم Google Maps» می‌بینید، برای بررسی دستی مراحل توصیه بالا، موقت متوقف کنید. مراحل عیب‌یابی را در ابتدای بخش اعمال محدودیت‌های کلید API توصیه‌شده ببینید.

  4. دوباره بررسی کنید که محدودیت‌های ازپیش تکمیل‌شده با وب‌سایت‌ها و برنامه‌هایی که انتظار دارید در آن‌ها از کلید API استفاده کنید مطابقت داشته باشد.

    روال مطلوب: هرگونه محدودیت برنامه یا میانای برنامه‌سازی کاربردی را که به سرویس‌های شما وابسته نیستند مستند و حذف کنید. اگر چیزی به‌دلیل وابستگی غیرمنتظره‌ای خراب شود، می‌توانید برنامه‌ها یا میاناهای برنامه‌سازی کاربردی موردنیاز را دوباره اضافه کنید.

    • اگر متوجه شدید که برنامه، وب‌سایت، یا میانای برنامه‌سازی کاربردی به‌وضوح در توصیه شما وجود ندارد، آن را به‌صورت دستی اضافه کنید یا چند روز صبر کنید تا توصیه به‌روز شود.

    • اگر برای توصیه پیشنهادی‌تان به راهنمایی بیشتری نیاز دارید، با پشتیبانی تماس بگیرید.

  5. اعمال را انتخاب کنید.

اگر پس‌از اعمال کردن توصیه، درخواستتان رد شد چه کاری باید انجام دهید

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

کیت‌های توسعه نرم‌افزار و میاناهای برنامه‌سازی کاربردی سمت کارخواه

برنامه‌های مبتنی بر مرورگر و نمای وب

مرورگرهای مدرن معمولاً سرایند Referer را در درخواست‌های بین مبدأ به‌دلیل حفظ حریم خصوصی محو می‌کنند و اغلب آن را به Origin تبدیل می‌کنند. اما رفتار دقیق به referrer-policy اعمال‌شده سایت میزبان بستگی دارد و ممکن است براساس مرورگر و نسخه کاربر نیز متفاوت باشد.

برنامه‌های وب که از طرح‌های URI محلی یا غیرشفاف برای بار کردن محتوا استفاده می‌کنند معمولاً باعث می‌شوند مرورگر یا وب‌نما رندرینگ به‌طور کامل سربرگ Referer را از همه تماس‌های خروجی محو کند، که ممکن است باعث شود درخواست‌ها بااستفاده از کلیدهای API با محدودیت‌های وب‌سایت ناموفق باشند.

برای راهنمایی بیشتر، به میزبانی برنامه‌های مبتنی بر مرورگر در سرور مراجعه کنید.

دستورالعمل‌های عیب‌یابی برای برنامه‌های مبتنی بر مرورگر و نمای وب:

  • برای Maps JavaScript API، برای جزئیات مربوط به نحوه مجاز کردن برنامه‌تان، به کنسول اشکال‌زدایی مرورگر مراجعه کنید.

    از طرح‌واره‌های URI غیرمعمول تاحدودی پشتیبانی می‌شود. اگر بخش‌هایی از برنامه شما حتی پس‌از مجاز کردن ارجاع‌دهنده موردنیاز با طرح URI غیرمعمول کار نمی‌کند، احتمالاً باید برنامه‌تان را از دور در سروری میزبانی کنید و آن را ازطریق HTTPS (یا HTTP) بار کنید.

    اگر برای طرح‌واره‌های URI غیرمعمول به راهنمایی نیاز دارید، با پشتیبانی تماس بگیرید.

  • دیگر میاناهای برنامه‌سازی کاربردی «پلاتفرم Maps» معمولاً ارجاع‌دهنده‌ای را که باید در پاسخ خطای میانای برنامه‌سازی کاربردی مجاز کنید برمی‌گردانند، با این فرض که کارخواه این اطلاعات را با درخواست ردشده ارسال کرده باشد.

    طرح‌واره‌های URI غیرمعمول پشتیبانی نمی‌شوند.

Android Apps

از پل اشکال‌زدایی Android (adb) یا Logcat استفاده کنید

برنامه‌های iOS

مشاهده پیام‌های گزارش را ببینید

برنامه‌هایی که مستقیماً سرویس‌های وب را فراخوانی می‌کنند

برای برنامه‌هایی که مستقیماً نقاط پایانی Maps Platform HTTPS REST API یا gRPC را بدون کیت توسعه نرم‌افزار سمت کارخواه Google Maps Platform فرا می‌خوانند، به موارد زیر مراجعه کنید:

برنامه‌های Android و iOS

اگر برنامه Android یا iOS شما بدون استفاده از هیچ‌یک از کیت‌های توسعه نرم‌افزار کارخواه «پلاتفرم Google Maps» موجود، مستقیماً سرویس‌های «پلاتفرم Maps» را فراخوانی می‌کند، برای دریافت نکات بیشتر درباره عیب‌یابی، به برنامه‌های Android و برنامه‌های iOS مراجعه کنید، و فراخوانی‌های سرویس وب سمت کارخواه ایمن برای آشنایی با بهترین روش‌های امنیتی فعلی برای موارد استفاده تلفن همراه را ببینید.

اگر برنامه شما پاسخ‌های خطای Maps Platform API را ثبت می‌کند، دستورالعمل‌های بالا برای کیت‌های توسعه نرم‌افزار سمت کارخواه ممکن است برای عیب‌یابی مشکلات اصالت‌سنجی نیز مفید باشد.

برنامه‌های سمت سرور

برنامه‌های سمت سرور که به کلیدهای API متکی هستند، بهتر است ازطریق محدودیت‌های نشانی IP ایمن شوند. اگر محدودیت‌های نشانی IP را برای کلیدتان اعمال کرده‌اید و گزارش‌های سرویس شما پاسخ‌های خطای Maps Platform API را ثبت می‌کند، برای اطلاعات بیشتر گزارش‌های سیستم را بررسی کنید. پاسخ خطا شامل نشانی IP سروری است که باید آن را مجاز کنید.

برنامه‌های مبتنی بر مرورگر یا وب‌نمای

هرچند Maps Static API،‏ Street View Static API، و جدیدترین Google Maps Platform APIs نیز از محدودیت‌های ارجاع‌دهنده پشتیبانی می‌کنند، توجه داشته باشید که مرورگرهای وب یا وب‌نماها احتمالاً سرصفحه Referer را برای درخواست‌های بین مبدأ به Origin محدود می‌کنند و احتمالاً آن را به‌طور کامل ارسال نمی‌کنند، مثلاً برای منابعی که به‌صورت محلی دسترسی دارند یا برای منابعی که ازطریق پروتکل‌های غیر از HTTP یا HTTPS ارائه می‌شوند.

اگر نمی‌توانید از Maps JavaScript API در برنامه‌تان استفاده کنید، و محدودیت‌های وب‌سایت کار نمی‌کند، برای اطلاع از نحوه صدور تماس‌های سرویس وب «پلاتفرم Google Maps» به‌صورت ایمن از درون برنامه سمت کارخواه مبتنی بر مرورگر، به تماس‌های سرویس وب سمت کارخواه ایمن مراجعه کنید.

نکاتی برای بررسی محدودیت‌های API

برای بررسی محدودیت‌های میانای برنامه‌سازی کاربردی موردنیاز، تعیین میاناهای برنامه‌سازی کاربردی که از کلید میانای برنامه‌سازی کاربردی شما استفاده می‌کنند را ببینید.

اگر نمی‌توانید تعیین کنید که کدام محدودیت‌ها را اعمال کنید:

  1. محدودیت‌های فعلی را برای مراجعه در آینده مستند کنید.
  2. تا زمانی که درحال بررسی مشکل هستید، آن‌ها را موقتاً بردارید. بااستفاده از مراحل موجود در بررسی استفاده از کلید میانای API می‌توانید میزان استفاده‌تان را درطول زمان بررسی کنید.
  3. درصورت نیاز، با پشتیبانی تماس بگیرید.

حذف کلیدهای میانای برنامه‌سازی کاربردی استفاده‌نشده

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

برای حذف کردن کلید میانای API:

  1. کنسول Google Cloud صفحه اطلاعات اعتباری پلاتفرم Google Maps را باز کنید.

  2. کلید میانای برنامه‌سازی کاربردی موردنظرتان را برای حذف کردن انتخاب کنید.

  3. دکمه حذف را در نزدیکی بالای صفحه انتخاب کنید.

  4. در صفحه حذف اطلاعات کاربری، حذف را انتخاب کنید.

    حذف کلید API چند دقیقه طول می‌کشد تا منتشر شود. پس‌از تکمیل انتشار، هرگونه ترافیک که از کلید API حذف‌شده استفاده کند رد می‌شود.

هنگام چرخاندن کلیدهای API احتیاط کنید

چرخاندن کلید API کلید جدیدی ایجاد می‌کند که همه محدودیت‌های کلید قدیمی را دارد. در این بازه زمانی، هم کلید قدیمی و هم کلید جدید پذیرفته می‌شود و به شما فرصت می‌دهد برنامه‌هایتان را برای استفاده از کلید جدید منتقل کنید.

قبل‌از چرخش کلید API:

  • ابتدا سعی کنید کلیدهای میانای API خود را همان‌طور که در محدود کردن کلیدهای میانای API توضیح داده شده است محدود کنید.

  • اگر به‌دلیل انواع محدودیت‌های برنامه متعارض، محدود کردن کلید API شما امکان‌پذیر نیست، همان‌طور که در انتقال به چندین کلید API توضیح داده شده است، به چندین کلید جدید (محدودشده) منتقل کنید. انتقال به شما امکان می‌دهد زمان‌بندی انتقال و عرضه را برای کلیدهای میانای برنامه‌سازی کاربردی جدید کنترل کنید.

اگر پیشنهادهای قبلی امکان‌پذیر نیست و باید کلید API خود را بچرخانید تا از استفاده غیرمجاز جلوگیری کنید، این مراحل را دنبال کنید:

  1. صفحه اعتبارنامه‌های Google Maps Platform را در کنسول Google Cloud باز کنید.

  2. کلید API موردنظر را برای چرخش باز کنید.

  3. در بالای صفحه، چرخاندن کلید را انتخاب کنید.

  4. درصورت تمایل، نام کلید API را تغییر دهید.

  5. ساختن را انتخاب کنید.

  6. برنامه‌هایتان را به‌روز کنید تا از کلید جدید استفاده کنند.

پس‌از اینکه برنامه‌هایتان را به‌روز کردید تا از کلید جدید استفاده کنند، کلید قدیمی را با کلیک کردن روی دکمه حذف کلید قبلی در بخش «کلید قبلی» صفحه کلید API جدید حذف کنید.

انتقال به چند کلید میانای API

برای انتقال از استفاده از یک کلید API برای چندین برنامه به یک کلید API منحصربه‌فرد برای هر برنامه، مراحل زیر را انجام دهید:

  1. شناسایی برنامه‌هایی که به کلیدهای جدید نیاز دارند:

    • برنامه‌های وب آسان‌ترین برنامه‌ها برای به‌روزرسانی هستند، زیرا شما بر همه کدها کنترل دارید. برای به‌روزرسانی کلیدهای همه برنامه‌های مبتنی بر وب خود برنامه‌ریزی کنید.
    • برنامه‌های تلفن همراه بسیار سخت‌تر هستند، زیرا مشتریان شما باید برنامه‌هایشان را به‌روز کنند تا بتوان از کلیدهای جدید استفاده کرد.
  2. ایجاد و محدود کردن کلیدهای جدید: هم محدودیت برنامه و هم حداقل یک محدودیت API اضافه کنید. برای اطلاعات بیشتر، به روال‌های مطلوب توصیه‌شده مراجعه کنید.

  3. کلیدهای جدید را به برنامه‌هایتان اضافه کنید: برای برنامه‌های تلفن همراه، این فرایند ممکن است ماه‌ها طول بکشد تا همه کاربران به جدیدترین برنامه با کلید API جدید به‌روزرسانی کنند.

استفاده سمت کارخواه و سمت سرور را در پروژه‌های جداگانه تقسیم کنید

اگر لازم است سرویس‌های «پلاتفرم Google Maps» را هم از برنامه‌های سمت سرور و هم مستقیماً از برنامه‌های سمت مشتری که در دستگاه‌های کاربر نهایی اجرا می‌شوند فراخوانی کنید، Google توصیه می‌کند استفاده‌تان را بین دو پروژه جداگانه تقسیم کنید.

این رویکرد به شما امکان می‌دهد محدودیت‌های سهمیه مناسبی را برای هر دقیقه و هر کاربر در اکثر سرویس‌های «پلاتفرم Google Maps» در پروژه سمت مشتری خود اعمال کنید و به این ترتیب مطمئن شوید که همه کاربران نهایی سهم منصفانه‌ای از سهمیه کلی پروژه شما دریافت می‌کنند بدون اینکه بر یکدیگر تأثیر بگذارند.

بااین‌حال، ازآنجایی‌که محدودیت‌های سهمیه هر کاربر بر برنامه‌های سمت کارخواه و سمت سرور تأثیر می‌گذارد، اگر برای کارهای سمت سرور خود نیز به پهنای باند بالا نیاز دارید، پروژه جداگانه‌ای برای این مورد استفاده راه‌اندازی کنید که با حد سهمیه هر کاربر بالاتر یا بدون محدودیت پیکربندی شده باشد.

غیرفعال کردن سرویس‌های استفاده‌نشده

سرویس‌های استفاده‌نشده را در پروژه فعال نگذارید، زیرا این کار دربرابر سوءاستفاده آسیب‌پذیر است، به‌ویژه اگر همه کلیدهای API عمومی خود را محدود نکرده باشید. به‌عنوان یک روال مطلوب، فقط زمانی سرویسی را در پروژه فعال کنید که برنامه‌هایتان به آن نیاز داشته باشند.

افزودن محدودیت‌های API به یک کلید از استفاده آن در سرویس‌هایی که برای آن مجاز نشده است جلوگیری می‌کند، اما محدودیت‌های API فقط برای آن کلید خاص اعمال می‌شود. سرویسی را در سطح پروژه غیرفعال کنید تا از استفاده غیرمجاز از سرویس در هر کلید پیوندشده به پروژه جلوگیری شود.

استفاده از کیت‌های توسعه نرم‌افزار سمت کارخواه

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

استفاده از کیت‌های توسعه نرم‌افزار سمت کارخواه همچنین به شما امکان می‌دهد از سازوکارهای امنیتی پیشرفته‌تری مثل «بررسی برنامه Firebase» در سطوح Maps Platform API که از آن پشتیبانی می‌کنند استفاده کنید. برای جزئیات بیشتر، استفاده از App Check برای ایمن کردن کلید میانای برنامه‌سازی کاربردی را ببینید.

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

برای اطلاع از دردسترس بودن کیت‌های توسعه نرم‌افزار Google Maps Platform سمت کارخواه برای پلاتفرم‌های مختلف، محدودیت‌های میانای برنامه‌سازی کاربردی و برنامه توصیه‌شده را ببینید.

محافظت از استفاده از Static Web API

«میاناهای برنامه‌سازی کاربردی وب ایستا»، مانند Maps Static API و Street View Static API، شبیه به فراخوانی‌های میانای برنامه‌سازی کاربردی سرویس وب هستند.

هر دو را بااستفاده از HTTPS REST API فراخوانی می‌کنید و معمولاً نشانی وب درخواست API را در سرور تولید می‌کنید. بااین‌حال، «میاناهای برنامه‌سازی کاربردی وب ایستا» به‌جای برگرداندن پاسخ JSON، تصویری تولید می‌کنند که می‌توانید در کد HTML تولیدشده جاسازی کنید. مهم‌تر از همه، به‌طورکلی کاربر نهایی، نه سرور، است که سرویس «پلاتفرم Google Maps» را فرا می‌خواند.

استفاده از امضای دیجیتال

به‌عنوان روال مطلوب، همیشه علاوه‌بر کلید میانای API از امضاهای دیجیتال استفاده کنید. همچنین، بررسی کنید که می‌خواهید چند درخواست امضانشده در روز مجاز باشد و سهمیه‌های درخواست امضانشده خود را براساس آن تنظیم کنید.

برای جزئیات بیشتر درباره امضاهای دیجیتال، راهنمای امضای دیجیتال را ببینید.

محافظت از رمز امضا

برای محافظت از «میاناهای برنامه‌سازی کاربردی وب ایستا»، رمزهای امضای API خود را مستقیماً در کد یا درخت منبع جاسازی نکنید یا آن‌ها را در برنامه‌های سمت مشتری آشکار نکنید. برای محافظت از اسرار امضا، این روال‌های مطلوب را دنبال کنید:

  • نشانی‌های وب درخواست «میانای برنامه‌سازی کاربردی ایستا Maps» و «میانای برنامه‌سازی کاربردی ایستا نمای خیابان» امضاشده را در سمت سرور هنگام ارائه صفحه وب یا در پاسخ به درخواست برنامه تلفن همراهتان تولید کنید.

    برای محتوای وب ایستا، می‌توانید از ابزاره اکنون نشانی وب را امضا کنید در صفحه اطلاعات اعتباری Google Maps Platform در «کنسول Cloud» استفاده کنید.

    برای محتوای وب پویا، نمونه کدهای امضای درخواست نشانی وب موجود را ببینید.

  • رمزهای امضا را خارج از کد منبع و درخت منبع برنامه خود ذخیره کنید. اگر رمزهای امضا یا هر اطلاعات خصوصی دیگری را در متغیرهای محیطی قرار دهید یا فایل‌هایی را اضافه کنید که به‌طور جداگانه ذخیره می‌شوند و سپس کدتان را هم‌رسانی کنید، رمزهای امضا در فایل‌های هم‌رسانی‌شده گنجانده نمی‌شوند. اگر رمزهای امضا یا هرگونه اطلاعات خصوصی دیگری را در فایل‌ها ذخیره می‌کنید، فایل‌ها را خارج از درخت منبع برنامه خود نگه دارید تا رمزهای امضای شما در سیستم کنترل کد منبع شما قرار نگیرد. این اقدام احتیاطی به‌ویژه اگر از سیستم مدیریت کد منبع عمومی، مانند GitHub، استفاده می‌کنید مهم است.

محافظت از کلیدهای میانای برنامه‌سازی کاربردی سرویس وب

برای استفاده ایمن از سرویس‌ها و «میاناهای برنامه‌سازی کاربردی پلاتفرم Google Maps» از برنامه‌های سمت مشتری، استفاده از کیت‌های توسعه نرم‌افزار سمت مشتری و تماس‌های ایمن با سرویس وب سمت مشتری را ببینید.

کلیدهای میانای برنامه‌سازی کاربردی را خارج از کد منبع یا درخت منبع برنامه خود ذخیره کنید. اگر کلیدهای API یا هر اطلاعات دیگری را در متغیرهای محیطی قرار دهید یا فایل‌هایی را که به‌طور جداگانه ذخیره شده‌اند اضافه کنید و سپس کدتان را هم‌رسانی کنید، کلیدهای API در فایل‌های هم‌رسانی‌شده اضافه نمی‌شوند. این موضوع به‌ویژه زمانی اهمیت دارد که از سیستم مدیریت کد منبع عمومی، مانند GitHub، استفاده می‌کنید.

برای کمک به محافظت از کلید API سرویس وب دربرابر استفاده تصادفی، Google توصیه می‌کند محدودیت‌های API را برای هر کلیدی که برای «پلاتفرم Maps» استفاده می‌شود اعمال کنید. علاوه‌براین، اعمال محدودیت‌های نشانی IP بر کلید سرویس وب شما نیز به محافظت از آن دربرابر استفاده غیرمجاز از نشانی‌های IP منبع دیگر کمک می‌کند، حتی اگر کلید به‌طور تصادفی فاش شود.

استفاده از OAuth برای برنامه‌های سمت سرور

‫OAuth 2.0 یک استاندارد باز برای واگذاری دسترسی است.

درحالی‌که پروتکل OAuth 2.0 از موارد استفاده‌ای پشتیبانی می‌کند که در آن کاربر نهایی به برنامه‌ای اجازه می‌دهد ازطرف او به داده‌های شخصی دسترسی داشته باشد، مورد استفاده درنظرگرفته‌شده برای OAuth 2.0 با Maps Platform این است که توسعه‌دهنده از کدهای دسترسی موقت برای مجاز کردن برنامه‌اش جهت فراخوانی میانای برنامه‌سازی کاربردی ازطرف حساب سرویس پروژه Google Cloud خود با اجازه‌های حساب سرویس استفاده کند.

ازآنجایی‌که حساب سرویس ممکن است اجازه‌های بسیار گسترده‌ای داشته باشد، OAuth 2.0 برای مجاز کردن تماس‌های سرور به سرور بین برنامه‌های سمت سرور مورداعتماد توسعه‌دهنده و سرورهای «پلاتفرم Google Maps» توصیه می‌شود.

برای برنامه‌های سمت کارخواه که روی دستگاه‌های کاربر نهایی اجرا می‌شوند، روش‌های اصالت‌سنجی دیگر، مثل کلیدهای API، توصیه می‌شود.

اگر می‌خواهید از OAuth 2.0 برای مجاز کردن ترافیک سرور به سرور استفاده کنید، موضوع OAuth را در اسناد API خود جستجو کنید.

برای مثال، در اینجا موضوع OAuth برای Address Validation API آورده شده است.

تماس‌های سرویس وب سمت کارخواه را ایمن کنید

اگر کیت‌های توسعه نرم‌افزار سمت کارخواه دردسترس نباشد، توصیه‌های زیر را ببینید.

استفاده از پراکسی سرور

استفاده از سرور پراکسی امن منبعی مطمئن برای تعامل با نقطه پایانی سرویس وب «پلاتفرم Google Maps» از برنامه سمت کارخواه فراهم می‌کند، بدون اینکه کلید میانای برنامه‌سازی کاربردی، رمز امضا، یا حساب سرویس Google Cloud شما را درمعرض کاربران غیرمجاز قرار دهد.

نکات کلیدی:

  • درخواست‌های «پلاتفرم Google Maps» را در سرور پراکسی بسازید. به کارخواه‌ها اجازه ندهید که بااستفاده از پراکسی، فراخوانی‌های API دلخواه را رله کنند.

  • پاسخ‌های «پلاتفرم Google Maps» را در سرور پراکسی خود پس‌پردازش کنید. داده‌هایی را که مشتری نیاز ندارد فیلتر کنید.

برای اطلاعات بیشتر درباره استفاده از کارگزار پراکسی، به زندگی نیابتی: استفاده از کارگزاران پراکسی با کتابخانه‌های مشتری Google Data API مراجعه کنید.

تماس‌های سرویس وب تلفن همراه مستقیم ایمن

اگر نمی‌توانید سرور پراکسی امنی برای برنامه سمت کارخواه خود راه‌اندازی کنید، بااستفاده از مراحل زیر برنامه‌تان را ایمن کنید:

  1. استفاده از سرایندهای HTTP:

    • Android: از سرصفحه‌های HTTP X-Android-Package و X-Android-Cert استفاده کنید.

    • iOS: از سرصفحه HTTP X-Ios-Bundle-Identifier استفاده کنید.

  2. محدودیت‌های برنامه مربوطه را به کلید Android یا iOS خود اضافه کنید.

  3. قبل‌از اینکه بخواهید مستقیماً از برنامه تلفن همراهتان به سرویس وب Google Maps Platform REST API تماس برقرار کنید، مطمئن شوید که درخواست‌های دارای شناسه‌های برنامه Android یا iOS نادرست رد می‌شوند.

    اگر محدودیت‌های برنامه Android و iOS در نقطه پایانی آزمایش‌شده پشتیبانی نمی‌شود، Google به‌شدت توصیه می‌کند که از کارساز پراکسی ایمن بین مشتریان تلفن همراه و نقطه پایانی سرویس وب «پلاتفرم Google Maps» استفاده کنید.

نکاتی برای برنامه‌های Android:

  • قبل‌از اینکه برنامه Android خود را با خدمات «پلاتفرم Google Maps» ادغام کنید، تأیید کنید که شناسه برنامه شما (که نام بسته نیز نامیده می‌شود) به‌درستی قالب‌بندی شده است. برای جزئیات بیشتر، پیکربندی واحد برنامه در مستندات Android را ببینید.

  • برای ارسال مستقیم X-Android-Package از برنامه‌تان، آن را به‌صورت برنامه‌نویسی بااستفاده از Context.getPackageName() جستجو کنید.

  • برای ارسال مستقیم X-Android-Cert از برنامه‌هایتان، اثر انگشت SHA-1 موردنیاز گواهینامه‌های امضای برنامه‌تان را که ازطریق PackageInfo.signingInfo قابل‌دسترسی است محاسبه کنید.

  • اگر برنامه Android خود را بااستفاده از کنسول Google Cloud مجاز می‌کنید، توجه داشته باشید که میانای کاربری انتظار دارد اثر انگشت SHA-1 رشته‌ای باشد که با دونقطه از هم جدا شده باشد، برای نمونه، 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33. بااین‌حال، ابزار gcloud و «میانای برنامه‌سازی کاربردی کلیدهای میانای برنامه‌سازی کاربردی» انتظار دارند رشته هگزادسیمال بدون جداکننده باشد.

نکاتی برای برنامه‌های iOS:

  • قبل‌از اینکه برنامه iOS خود را با خدمات Google Maps Platform ادغام کنید، تأیید کنید که «شناسه دسته‌بندی» شما به‌درستی قالب‌بندی شده است.

  • معمولاً همیشه باید «شناسه دسته نرم‌افزاری» دسته نرم‌افزاری اصلی خود را در سرصفحه X-Ios-Bundle-Identifier هنگام صدور مجوز برای برنامه iOS خود ارسال کنید.

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

میزبانی برنامه‌های مبتنی بر مرورگر در سرور

چارچوب‌هایی مثل Apache Cordova به شما امکان می‌دهند به‌راحتی برنامه‌های ترکیبی چندسکویی بسازید که در نمای وب اجرا می‌شوند. بااین‌حال، محدودیت‌های وب‌سایت کلید API تضمین نمی‌کند که به‌درستی کار کند، مگر اینکه برنامه وب شما بااستفاده از HTTP یا HTTPS از وب‌سایتی که کنترل می‌کنید و مجاز کرده‌اید بارگیری شود.

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

یا اینکه برای برنامه‌های تلفن همراه، به‌جای استفاده از کیت توسعه نرم‌افزار مبتنی بر وب، از کیت‌های توسعه نرم‌افزار بومی موجود در Google Maps Platform برای Android و iOS استفاده کنید.

استفاده از App Check برای ایمن کردن کلید میانای API

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

دستورالعمل‌های یکپارچه‌سازی «بررسی برنامه»:

مدیریت استفاده غیرمجاز از کلید میانای API

اگر متوجه شدید که از کلید API شما به‌صورت غیرمجاز استفاده می‌شود، برای رسیدگی به این مشکل، اقدامات زیر را انجام دهید:

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

  2. اگر از Places SDK یا Maps Javascript API استفاده می‌کنید، می‌توانید از App Check برای ایمن کردن کلید میانای برنامه‌سازی کاربردی خود استفاده کنید.

  3. اگر موارد زیر درست است، کلیدها را فقط جایگزین یا چرخش دهید:

    • استفاده غیرمجاز از کلیدهایی را شناسایی می‌کنید که یا نمی‌توانند محدود شوند یا قبلاً محدود شده‌اند، و App Check قابل‌اعمال نیست.

    • می‌خواهید سریع‌تر اقدام کنید تا کلید API خود را ایمن کنید و سوءاستفاده را متوقف کنید، حتی اگر ممکن است بر ترافیک قانونی از برنامه شما تأثیر بگذارد.

    قبل‌از ادامه دادن، هنگام چرخاندن کلیدهای API مراقب باشید را بخوانید.

  4. اگر هنوز مشکل دارید یا به کمک نیاز دارید، با پشتیبانی تماس بگیرید.

محدودیت‌های توصیه‌شده برای برنامه و میانای برنامه‌سازی کاربردی

بخش‌های زیر محدودیت‌های مناسب برنامه و میانای برنامه‌سازی کاربردی را برای هر میانای برنامه‌سازی کاربردی، کیت توسعه نرم‌افزار، یا سرویس Google Maps Platform پیشنهاد می‌کنند.

محدودیت‌های میانای برنامه‌سازی کاربردی توصیه‌شده

دستورالعمل‌های زیر برای محدودیت‌های «میانای برنامه‌سازی کاربردی» بر همه سرویس‌های «پلاتفرم Google Maps» اعمال می‌شود:

  • کلید API خود را فقط به APIهایی که برای آن‌ها استفاده می‌کنید محدود کنید، با استثنائات زیر:

    • اگر برنامه‌تان از «کیت توسعه نرم‌افزار مکان‌ها» برای Android یا «کیت توسعه نرم‌افزار مکان‌ها» برای iOS استفاده می‌کند، Places API (جدید) یا Places API را، بسته به نسخه‌های کیت توسعه نرم‌افزاری که استفاده می‌کنید، مجاز کنید. ۱

    • اگر برنامه‌تان از Maps JavaScript API استفاده می‌کند، همیشه آن را در کلیدتان مجاز کنید.

    • اگر از هریک از سرویس‌های Maps JavaScript API زیر نیز استفاده می‌کنید، باید این میاناهای برنامه‌سازی کاربردی متناظر را نیز مجاز کنید:

      سرویس محدودیت میانای برنامه‌سازی کاربردی
      «سرویس مسیرها» (قدیمی) Directions API (Legacy)
      Distance Matrix Service (قدیمی) Distance Matrix API (Legacy)
      سرویس ارتفاع Elevation API
      Geocoding Service Geocoding API
      کلاس مکان، ابزاره تکمیل خودکار مکان (جدید) و میانای برنامه‌سازی کاربردی داده‌های تکمیل خودکار مکان Places API (جدید)۲
      کتابخانه مکان‌ها، «سرویس مکان» و ابزارک تکمیل خودکار مکان Places API۲

۱ برای جزئیات بیشتر، به اسناد کیت توسعه نرم‌افزار مکان‌ها برای Android و کیت توسعه نرم‌افزار مکان‌ها برای iOS مراجعه کنید.

۲ اگر مطمئن نیستید که باید «میانای برنامه‌سازی کاربردی جاها (جدید)» یا «میانای برنامه‌سازی کاربردی جاها (قدیمی)» را مجاز کنید، به Maps JavaScript API مستندات مراجعه کنید.

چند مثال:

  • شما از «کیت توسعه نرم‌افزار Google Maps برای Android» و «کیت توسعه نرم‌افزار مکان‌ها، ویژه Android» استفاده می‌کنید، بنابراین «کیت توسعه نرم‌افزار Google Maps برای Android» و «میانای برنامه‌سازی کاربردی مکان‌ها (جدید)» را به‌عنوان محدودیت‌های میانای برنامه‌سازی کاربردی اضافه می‌کنید.

  • وب‌سایت شما از «میانای برنامه‌سازی کاربردی جاوا اسکریپت Maps» «خدمات ارتفاع» و «میانای برنامه‌سازی کاربردی Maps ایستا» استفاده می‌کند، بنابراین محدودیت‌های میانای برنامه‌سازی کاربردی را برای همه میاناهای برنامه‌سازی کاربردی زیر اضافه می‌کنید:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

محدودیت برنامه توصیه‌شده

وب‌سایت‌ها

برای وب‌سایت‌هایی که از سرویس‌های Maps JavaScript API، Maps Static API، یا Street View Static API استفاده می‌کنند یا سرویس‌های اخیر «پلاتفرم Google Maps» را مستقیماً ازطریق HTTPS REST API یا gRPC فراخوانی می‌کنند، از محدودیت برنامه وب‌سایت‌ها استفاده کنید:

۱ برای برنامه‌های تلفن همراه، از کیت توسعه نرم‌افزار Maps بومی برای Android و کیت توسعه نرم‌افزار Maps بومی برای iOS استفاده کنید.

۲ برای برنامه‌های تلفن همراه، از کیت توسعه نرم‌افزار مکان‌ها برای Android و کیت توسعه نرم‌افزار مکان‌ها برای iOS بومی استفاده کنید.

۳ همچنین ببینید محافظت از استفاده از Static Web API.

وب‌سایت‌های دارای Maps Embed API

اگرچه استفاده از Maps Embed API بدون هزینه است، اما همچنان باید کلید میانای برنامه‌سازی کاربردی استفاده‌شده را محدود کنید تا از سوءاستفاده در دیگر سرویس‌ها جلوگیری کنید.

روال مطلوب: کلید میانای برنامه‌سازی کاربردی جداگانه‌ای برای استفاده از Maps Embed API ایجاد کنید و این کلید را فقط به Maps Embed API محدود کنید. این محدودیت به‌اندازه کافی کلید را ایمن می‌کند و از استفاده غیرمجاز آن در هر سرویس Google دیگری جلوگیری می‌کند. برای کنترل کامل اینکه کلید Maps Embed API شما از کجا می‌تواند استفاده شود، Google توصیه می‌کند محدودیت‌های برنامه وب‌سایت‌ها را نیز اعمال کنید.

اگر نمی‌توانید استفاده از Maps Embed API را به کلید API جداگانه‌ای اختصاص دهید، کلید موجودتان را بااستفاده از محدودیت برنامه وب‌سایت‌ها ایمن کنید.

برنامه‌ها و سرورهایی که از سرویس‌های وب استفاده می‌کنند

برای سرورها و برنامه‌های سمت کارخواه از شبکه‌های داخلی شرکت مورداعتماد که از سرویس‌های وب همراه با کلیدهای API استفاده می‌کنند، از محدودیت IP addresses برنامه استفاده کنید.

برای برنامه‌ها و سرورهایی که از این میاناهای برنامه‌سازی کاربردی استفاده می‌کنند، استفاده کنید:

۴ برای برنامه‌های تلفن همراه، از «کیت توسعه نرم‌افزار پیمایش» استفاده کنید.

‫۵ برای استفاده ایمن از تلفن همراه، از پراکسی سرور ایمن استفاده کنید.

۶ برای برنامه‌های سمت مشتری، از سرویس مکان جغرافیایی بومی ارائه‌شده توسط پلاتفرم استفاده کنید؛ برای مثال، مکان جغرافیایی W3C برای مرورگرهای وب، LocationManager یا میانای برنامه کاربردی «ارائه‌دهنده مکان ترکیبی» برای Android، یا چارچوب مکان اصلی Apple برای iOS.

۷ برای برنامه‌های تلفن همراه، از کیت توسعه نرم‌افزار مکان‌ها بومی برای Android و کیت توسعه نرم‌افزار مکان‌ها بومی برای iOS استفاده کنید.

۸ برای استفاده ایمن در سمت کارخواه، از سرور پراکسی امن استفاده کنید.

Android Apps

برای برنامه‌های Android، از Android apps محدودیت برنامه استفاده کنید. استفاده برای برنامه‌هایی که از این کیت‌های توسعه نرم‌افزار استفاده می‌کنند:

علاوه‌براین، بااستفاده از افزونه Secrets Gradle برای تزریق کردن اطلاعات محرمانه از فایل محلی به‌جای ذخیره کردن آن‌ها در Android Manifest، از بررسی تصادفی کلیدهای میانای برنامه‌سازی کاربردی در کنترل نسخه جلوگیری کنید.

برنامه‌های iOS

برای برنامه‌های iOS، از محدودیت برنامه iOS apps استفاده کنید. برای برنامه‌ها و کارسازهایی که از این کیت‌های توسعه نرم‌افزار استفاده می‌کنند، استفاده کنید:

مطالعه بیشتر