بهترین شیوه های امنیتی API

برای برنامه‌ها و پروژه‌هایی که از APIها و SDKهای پلتفرم Google Maps استفاده می‌کنند، باید از کلیدهای API یا در صورت پشتیبانی از Oauth استفاده کنید تا از استفاده غیرمجاز و هزینه‌ها جلوگیری کنید. اگر از کلیدهای API استفاده می کنید، برای حداکثر امنیت، کلیدهای API خود را هنگام ایجاد آنها محدود کنید. این بهترین شیوه ها به شما نشان می دهد که چگونه آنها را محدود کنید.

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

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

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

بهترین شیوه های توصیه شده

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

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

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

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

استفاده از کلید API خود را بررسی کنید

هنگام بازسازی کلیدهای API مراقب باشید

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

با استفاده از Static Web API از برنامه ها محافظت کنید

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

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

توصیه های اضافی برای برنامه های موبایل iOS و Android

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

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

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

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

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

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

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

    برای اطلاعات بیشتر، به مدیریت استفاده غیرمجاز از یک کلید 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 تنظیم کنید

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

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

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

    صفحه کلید API را ویرایش کنید

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

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

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

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

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

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

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

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

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

    • Select APIs را باز کنید و API ها یا SDK هایی را که می خواهید برنامه شما به آن دسترسی داشته باشد با استفاده از کلید API انتخاب کنید.

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

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

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

    پس از این مرحله محدودیت بخشی از تعریف کلید 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 مراجعه کنید.

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

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

  3. برای نوع API خود به صفحه کاوشگر Metrics بروید:

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

    • برای کلیدهای API با استفاده از Maps Embed API : به Metrics Explorer بروید.

  4. هر کلید API را بررسی کنید:

    1. ADD FILTER را انتخاب کنید.

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

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

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

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

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

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

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

با استفاده از Metrics Explorer نوع صحیح محدودیت برنامه را انتخاب کنید

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

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

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

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

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

  3. به این صفحه کاوشگر Metrics بروید: Metrics Explorer .

  4. هر کلید API را بررسی کنید:

    1. ADD FILTER را انتخاب کنید.

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

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

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

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

  6. هنگامی که نوع پلتفرم کلیدهای API خود را دارید، محدودیت برنامه را برای آن platform_type اعمال کنید:

    PLATFORM_TYPE_JS
    محدودیت های وب سایت را روی کلید اعمال کنید.
    PLATFORM_TYPE_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 را اعمال کنید

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

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

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

  • شما (همچنین) از کلید API در سرویس‌های دیگری غیر از Google Maps Platform استفاده می‌کنید. اگر استفاده از سرویس‌های دیگر را مشاهده کردید، توصیه را بدون انجام کارهای زیر اعمال نکنید :

    1. بررسی کنید که استفاده از API که در کاوشگر Google Cloud Console Metrics می‌بینید قانونی است.

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

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

  • کلید API شما در SDKها یا APIهای سمت سرویس گیرنده استفاده نمی شود.

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

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

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

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

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

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

  • ترافیک برنامه یا وب‌سایت خارج از محدوده تاریخی موجود در Google Cloud Console Metrics Explorer است.

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

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

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

    توجه : اگر هیچ محدودیت توصیه‌شده‌ای نمی‌بینید، برای تنظیم محدودیت‌های مناسب، به تنظیم محدودیت‌های API برای یک کلید API مراجعه کنید.

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

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

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

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

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

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

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

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

برای SDK های سمت سرویس گیرنده، به زیر مراجعه کنید:

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

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

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

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

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

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

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

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

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

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

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

هنگام بازسازی کلیدهای API خود مراقب باشید

بازسازی یک کلید API یک کلید جدید ایجاد می کند که تمام محدودیت های کلید قدیمی را دارد. این فرآیند همچنین یک تایمر 24 ساعته را شروع می کند که پس از آن کلید API قدیمی حذف می شود.

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

قبل از ایجاد مجدد یک کلید API :

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

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

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

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

  2. کلید API را که می خواهید بازسازی کنید باز کنید.

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

  4. Replace key را انتخاب کنید.

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

برای برگرداندن یک کلید بازسازی شده

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

  2. کلید API را که می خواهید به عقب برگردانید باز کنید.

  3. بازگشت به کلید قبلی را انتخاب کنید.

  4. در گفتگوی Revert ، کلید Revert را انتخاب کنید.

پس از برگشت، نسخه "جدید" قبلی کلید به نسخه قبلی تبدیل می شود و یک تایمر غیرفعال سازی 24 ساعته جدید برای آن تنظیم شده است. امکان بازگشت بین این دو مقدار کلیدی وجود دارد تا زمانی که کلید را دوباره تولید کنید.

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

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

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

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

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

  3. کلیدهای جدید را به برنامه‌های خود اضافه کنید : برای برنامه‌های تلفن همراه، این فرآیند ممکن است ماه‌ها طول بکشد تا همه کاربران شما با کلید 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 استفاده کنید.

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

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

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

از کلید API و راز امضا در برنامه های تلفن همراه با استفاده از سرویس های وب یا Static Web API محافظت کنید

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

  • کلید API یا رمز امضا را در یک فروشگاه کلید امن ذخیره کنید . این مرحله حذف کلیدهای API و سایر داده های خصوصی به طور مستقیم از برنامه را دشوارتر می کند.

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

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

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

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

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

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

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

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

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

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

محدودیت های API توصیه شده

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

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

    • اگر برنامه شما از Places SDK برای Android یا Places SDK برای iOS استفاده می‌کند، Places API را مجاز کنید.

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

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

    سرویس محدودیت API
    سرویس مسیرها، Maps JavaScript API Directions API
    Distance Matrix Service، Maps JavaScript API Distance Matrix API
    Elevation Service، Maps JavaScript API Elevation API
    سرویس کدگذاری جغرافیایی، Maps JavaScript API API کدگذاری جغرافیایی
    کتابخانه مکان‌ها، Maps JavaScript API Places API

چند نمونه:

  • شما از Maps SDK برای Android و Places SDK برای Android استفاده می‌کنید، بنابراین Maps SDK برای Android و Places API را به عنوان محدودیت‌های API درج می‌کنید.

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

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

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

وب‌سایت‌هایی با Maps JavaScript API یا Static Web API

برای وب‌سایت‌هایی که از خدمات Maps JavaScript یا Static Web API استفاده می‌کنند، از محدودیت برنامه Websites استفاده کنید.

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

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

2 همچنین به محافظت از برنامه های تلفن همراه با استفاده از وب سرویس یا Static Web API مراجعه کنید.

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

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

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

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

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

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

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

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

برنامه های اندروید

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

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

برنامه های iOS

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