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

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

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

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

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

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

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

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

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

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

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

حذف کلیدهای میانای API استفاده‌نشده

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

هنگام چرخاندن کلیدهای میانای برنامه‌سازی کاربردی احتیاط کنید

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    نوع محدودیت شرح
    وب‌سایت‌ها یک یا چند وب‌سایت ارجاع‌دهنده را مشخص کنید.
    • طرح‌واره‌های URI ارجاع‌دهنده که به‌طور جهانی پشتیبانی می‌شوند https و http هستند. عملکرد صحیح طرح‌های دیگر تضمین نمی‌شود، زیرا مرورگرهای وب مدرن به‌دلایل حریم خصوصی، سرصفحه «ارجاع‌دهنده» را در درخواست‌های خروجی ارسال نمی‌کنند.
    • همیشه رشته ارجاع‌دهنده کامل را ارائه دهید، ازجمله طرح پروتکل، نام میزبان، و درگاه اختیاری (برای مثال، 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. در صفحه ویرایش کلید میانای برنامه‌سازی کاربردی، در بخش محدودیت‌های میانای برنامه‌سازی کاربردی:

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

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

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

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

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

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

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

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

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

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

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

  • مشاهده نحوه استفاده از کلیدهای میانای API
  • شناسایی استفاده غیرمنتظره
  • کمک به تأیید اینکه آیا کلید استفاده‌نشده برای حذف ایمن است یا نه. برای کسب اطلاعات درباره حذف کلید میانای API، به حذف کلیدهای میانای API استفاده‌نشده مراجعه کنید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

میاناهای برنامه‌سازی کاربردی و کیت‌های توسعه نرم‌افزار 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

  • کیت توسعه نرم‌افزار Google Maps برای Android، کیت توسعه نرم‌افزار ناوبری برای Android، کیت توسعه نرم‌افزار «جاها» برای Android، و کیت میانای کاربر «جاها» در Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Android Apps

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

برنامه‌های iOS

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

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

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

برنامه‌های 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 نیز از محدودیت‌های ارجاع‌دهنده پشتیبانی می‌کنند، توجه داشته باشید که مرورگرهای وب یا نماهای وب احتمالاً سرصفحه Referer را برای درخواست‌های میان‌مبدئی به Origin محدود می‌کنند و احتمالاً ارسال آن را به‌طور کامل حذف می‌کنند، مثلاً برای منابعی که به‌صورت محلی دسترسی دارند یا برای منابعی که ازطریق پروتکل‌هایی غیراز HTTP یا HTTPS ارائه می‌شوند.

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

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

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

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

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

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

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

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

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

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

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

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

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

هنگام چرخاندن کلیدهای میانای API مراقب باشید

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

قبل‌از چرخاندن کلید میانای برنامه‌سازی کاربردی:

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

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

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

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

  2. کلید میانای برنامه‌سازی کاربردی موردنظرتان را برای چرخش باز کنید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نکات کلیدی:

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

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

برای اطلاعات بیشتر درباره استفاده از پراکسی سرور، به Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries مراجعه کنید.

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

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

  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 Platform استفاده کنید.

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

  • پیش‌از ادغام کردن برنامه Android با سرویس‌های Google Maps Platform، بررسی کنید که شناسه برنامه‌تان (که نام بسته نیز نامیده می‌شود) قالب‌بندی درستی داشته باشد. برای جزئیات بیشتر، پیکربندی کردن واحد برنامه را در اسناد 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 و API کلیدهای API انتظار دارند رشته شانزده‌شانزدهی بدون جداکننده باشد.

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

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

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

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

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

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

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

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

برای ایمن کردن کلید میانای API، از «بررسی برنامه» استفاده کنید

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

دستورالعمل‌های ادغام «بررسی برنامه»:

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

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

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

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

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

    • استفاده غیرمجاز از کلیدهایی را شناسایی می‌کنید که یا نمی‌توانند محدود شوند یا قبلاً محدود شده‌اند و «بررسی برنامه» برای آن‌ها قابل‌اجرا نیست.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

چند مثال:

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

  • وب‌سایت شما از Maps JavaScript API Elevation Service و Maps Static API استفاده می‌کند، بنابراین محدودیت‌های API را برای همه APIهای زیر اضافه می‌کنید:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

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

وب‌سایت‌ها

برای وب‌سایت‌هایی که از سرویس‌های Maps JavaScript API، Maps Static API، یا Street View Static API استفاده می‌کنند یا سرویس‌های اخیر Google Maps Platform را مستقیماً ازطریق 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 را به کلید میانای برنامه‌سازی کاربردی جداگانه‌ای تفکیک کنید، کلید موجودتان را بااستفاده از محدودیت برنامه وب‌سایت‌ها ایمن کنید.

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

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

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

۴ برای برنامه‌های تلفن همراه، استفاده از Navigation SDK را درنظر بگیرید.

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

‫۶ برای برنامه‌های سمت کارخواه، استفاده از سرویس مکان جغرافیایی بومی ارائه‌شده توسط پلاتفرم را درنظر بگیرید؛ برای مثال، W3C Geolocation برای مرورگرهای وب، LocationManager یا Fused Location Provider API برای Android، یا چارچوب Core Location Apple برای iOS.

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

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

Android Apps

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

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

برنامه‌های iOS

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

مطالعه بیشتر