أفضل ممارسات أمان واجهة برمجة التطبيقات

بالنسبة إلى التطبيقات والمشاريع التي تستخدم واجهات برمجة التطبيقات لمنصة خرائط Google وحِزم تطوير البرامج (SDK)، يجب استخدام مفاتيح واجهة برمجة التطبيقات أو Oauth، إذا كان ذلك متاحًا، لمنع الاستخدام غير المصرّح به والرسوم. يجب تقييد مفاتيح واجهة برمجة التطبيقات عند إنشائها، في حال استخدام مفاتيح واجهة برمجة التطبيقات، لتعزيز مستوى الأمان. توضح لك أفضل الممارسات هذه كيفية حصر إمكانية الوصول إليها.

بالإضافة إلى فرض قيود على التطبيق ومفتاح واجهة برمجة التطبيقات، يمكنك اتِّباع أي ممارسات أمان تنطبق على منتجات معيّنة في Google Maps Platform. على سبيل المثال، يمكنك الاطّلاع على Maps JavaScript API أدناه في قسم القيود المقترَحة للتطبيقات وواجهة برمجة التطبيقات.

إذا كانت مفاتيح واجهة برمجة التطبيقات قيد الاستخدام، يُرجى مراجعة الاقتراحات الواردة أدناه في القسم في حال فرض قيود على مفتاح واجهة برمجة التطبيقات قيد الاستخدام أو إعادة إنشائه.

لمزيد من التفاصيل حول التوقيعات الرقمية، يُرجى الاطّلاع على دليل التوقيع الرقمي.

أفضل الممارسات المقترَحة

لزيادة مستوى الأمان وتجنُّب الدفع مقابل الاستخدام غير المصرّح به، اتّبِع أفضل ممارسات أمان واجهة برمجة التطبيقات هذه لجميع واجهات برمجة التطبيقات أو حِزم SDK أو خدمات "منصة خرائط Google":

تقييد مفاتيح واجهة برمجة التطبيقات

استخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق

حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة

التحقّق من استخدام مفتاح واجهة برمجة التطبيقات

توخَّ الحذر عند إعادة إنشاء مفاتيح واجهة برمجة التطبيقات

اقتراحات إضافية للمواقع الإلكترونية التي تستخدم واجهات برمجة تطبيقات الويب الثابت

حماية التطبيقات باستخدام واجهات برمجة تطبيقات الويب الثابت

الاقتراحات الإضافية للتطبيقات التي تستخدم خدمات الويب

حماية التطبيقات باستخدام خدمات الويب

اقتراحات إضافية للتطبيقات المتوافقة مع الأجهزة الجوّالة التي تعمل بنظامَي التشغيل iOS وAndroid

حماية التطبيقات المتوافقة مع الأجهزة الجوّالة باستخدام خدمة الويب أو واجهات برمجة تطبيقات الويب الثابت

في حال تقييد أو إعادة إنشاء مفتاح واجهة برمجة تطبيقات قيد الاستخدام

  • قبل تغيير مفتاح واجهة برمجة التطبيقات، تحقَّق من استخدام مفتاح واجهة برمجة التطبيقات تكمن أهمية هذه الخطوة بشكل خاص في حال إضافة قيود بعد استخدام المفتاح.

  • بعد تغيير المفتاح، حدِّث جميع تطبيقاتك باستخدام مفاتيح واجهة برمجة التطبيقات الجديدة حسب الحاجة.

  • إذا لم تكن هناك إساءة استخدام نشطة لمفتاح واجهة برمجة التطبيقات، يمكنك نقل تطبيقاتك إلى العديد من مفاتيح واجهة برمجة التطبيقات الجديدة بالوتيرة التي تناسبك، مع إبقاء مفتاح واجهة برمجة التطبيقات الأصلي بدون تغيير إلى أن يظهر لك نوع واحد فقط من الزيارات، والذي يمكنك بعد ذلك تقييد مفاتيح واجهة برمجة التطبيقات من خلاله بفرض قيود على التطبيق. للحصول على المزيد من التعليمات، يُرجى الاطّلاع على النقل إلى مفاتيح متعددة لواجهة برمجة التطبيقات.

    يمكنك مراقبة الاستخدام بمرور الوقت، ومعرفة متى يتم ترحيل واجهات برمجة تطبيقات محددة وأنواع الأنظمة الأساسية والنطاقات من مفتاح واجهة برمجة التطبيقات القديم قبل اختيار تقييد المفتاح القديم أو حذفه. لمزيد من المعلومات، يُرجى الاطّلاع على إعداد التقارير والمراقبة والمقاييس.

  • وإذا تم اختراق مفتاح واجهة برمجة التطبيقات، يجب أن تنتقل بسرعة أكبر لتأمين مفتاح واجهة برمجة التطبيقات وإيقاف إساءة الاستخدام. في تطبيقات Android وiOS، لا يتم استبدال المفاتيح حتى يحدِّث العملاء تطبيقاتهم. يُعد تحديث المفاتيح أو استبدالها في تطبيقات JavaScript أو تطبيقات خدمة الويب أكثر وضوحًا، ولكنها لا تزال تتطلب تخطيطًا دقيقًا وعملًا سريعًا.

    للمزيد من المعلومات، يُرجى الاطّلاع على القسم التعامل مع الاستخدام غير المصرّح به لمفتاح واجهة برمجة التطبيقات.

تقييد مفاتيح واجهة برمجة التطبيقات

وتتمثل أفضل الممارسات دائمًا في تقييد مفاتيح واجهة برمجة التطبيقات باستخدام أحد قيود التطبيق وقيود واحدة أو أكثر من قيود واجهة برمجة التطبيقات. للتعرّف على القيود المقترَحة من خلال واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) أو خدمة JavaScript، يُرجى الاطّلاع على القيود المقترَحة للتطبيقات وواجهة برمجة التطبيقات أدناه.

  • قيود التطبيقات يمكنك حصر استخدام مفتاح واجهة برمجة التطبيقات على أنظمة أساسية معيّنة: تطبيقات Android أو iOS، أو مواقع إلكترونية معيّنة للتطبيقات من جهة العميل، أو عناوين IP محدّدة أو شبكات CIDR الفرعية للتطبيقات من جهة الخادم التي تصدر طلبات بيانات REST API لخدمة الويب.

    يمكنك تقييد مفتاح من خلال إضافة قيد تطبيق واحد أو أكثر من الأنواع التي تريد السماح بها، وبعد ذلك لا يُسمح إلا بالطلبات الصادرة من هذه المصادر.

  • القيود المفروضة على واجهة برمجة التطبيقات يمكنك تحديد الخدمات أو حِزم تطوير البرامج (SDK) أو واجهات برمجة التطبيقات في "منصة خرائط Google" التي يمكن استخدام مفتاح واجهة برمجة التطبيقات عليها. تسمح قيود واجهة برمجة التطبيقات فقط بالطلبات الواردة إلى واجهات برمجة التطبيقات وحُزم تطوير البرامج (SDK) التي تحدّدها. بالنسبة إلى أي مفتاح محدد لواجهة برمجة التطبيقات، يمكنك تحديد أكبر عدد ممكن من قيود واجهة برمجة التطبيقات حسب الحاجة. تتضمن قائمة واجهات برمجة التطبيقات المتاحة جميع واجهات برمجة التطبيقات التي تم تفعيلها في المشروع.

ضبط قيود تطبيق لمفتاح واجهة برمجة التطبيقات

  1. افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.

  2. اختَر مفتاح واجهة برمجة التطبيقات الذي تريد فرض قيود عليه.

  3. في صفحة تعديل مفتاح واجهة برمجة التطبيقات، ضمن القيود المفروضة على المفاتيح، اختَر ضبط قيود على التطبيق.

    تعديل صفحة مفتاح واجهة برمجة التطبيقات

  4. حدد أحد أنواع القيود وقدم المعلومات المطلوبة بعد قائمة القيود.

    نوع التقييد الوصف
    المواقع الإلكترونية حدِّد موقع إلكتروني مُحيل واحدًا أو أكثر.
    • ومخطّطات معرّف الموارد المنتظم (URI) للمُحيل المتوافقة مع الجميع هي https وhttp.
    • قدِّم دائمًا عنوان URL المُحيل الكامل، بما في ذلك نظام البروتوكول واسم المضيف والمنفذ الاختياري (على سبيل المثال، https://google.com).
    • يمكنك استخدام أحرف البدل للسماح بجميع النطاقات الفرعية. على سبيل المثال، يقبل https://*.google.com جميع المواقع الإلكترونية التي تنتهي بـ .google.com. ويُرجى العلم أنّه إذا حدّدت www.domain.com، فإنه يعمل كحرف بدل www.domain.com/*، ويسمح بأي مسار فرعي على اسم المضيف هذا.
    • يجب توخي الحذر عند تفويض مُحيلي المسار الكامل، مثل https://google.com/some/path، لأن معظم المتصفحات الحالية تزيل المسار من طلبات الوصول من مصادر خارجية.
    عناوين IP حدِّد عنوانًا واحدًا أو أكثر من عناوين IPv4 أو IPv6، أو الشبكات الفرعية باستخدام تدوين CIDR. يجب أن تتطابق عناوين IP مع عنوان المصدر الذي تلاحظه خوادم "منصة خرائط Google". إذا كنت تستخدم ترجمة عنوان الشبكة (NAT)، يكون هذا العنوان مطابقًا عادةً لعنوان IP المتاح للجميع الخاص بجهازك.
    التطبيقات المتوافقة مع Android أضِف اسم حزمة Android (من ملف AndroidManifest.xml) والملف المرجعي لشهادة توقيع SHA-1 لكل تطبيق Android تريد تفويضه. إذا كنت تستخدم ميزة توقيع التطبيق من Play، لجلب الملف المرجعي لشهادة التوقيع، يُرجى الاطّلاع على العمل مع مزوّدي واجهة برمجة التطبيقات. إذا كنت تدير مفتاح التوقيع الخاص بك، يمكنك الاطّلاع على التوقيع الذاتي لطلبك أو يمكنك الاطّلاع على التعليمات المتعلّقة ببيئة الإصدار.
    تطبيقات iOS أضِف معرِّف الحزمة لكل تطبيق iOS تريد تفويضه.

    للحصول على اقتراحات بشأن فرض قيود على التطبيقات، راجِع القيود المقترَحة على التطبيقات.

  5. انقر على حفظ.

ضبط قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات

  1. افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.

  2. اختَر مفتاح واجهة برمجة التطبيقات الذي تريد فرض قيود عليه.

  3. في صفحة تعديل مفتاح واجهة برمجة التطبيقات، ضمن قيود واجهة برمجة التطبيقات:

    • اختَر حصر المفتاح.

    • افتح Select APIs واختَر واجهات برمجة التطبيقات أو حِزم SDK التي تريد أن يصل إليها تطبيقك باستخدام مفتاح واجهة برمجة التطبيقات.

      إذا لم تكن واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) مدرَجة، عليك تفعيلهما. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة تفعيل واجهة برمجة تطبيقات واحدة أو أكثر أو حزمة تطوير برامج (SDK).

    حصر إمكانية الوصول إلى واجهة برمجة تطبيقات في صفحة "تعديل مفتاح واجهة برمجة التطبيقات"

  4. انقر على حفظ.

    ويصبح هذا التقييد جزءًا من تعريف مفتاح واجهة برمجة التطبيقات بعد هذه الخطوة. تأكَّد من تقديم التفاصيل المناسبة واختَر حفظ لحفظ القيود المفروضة على مفتاح واجهة برمجة التطبيقات. للمزيد من المعلومات، يُرجى الاطّلاع على دليل الحصول على مفتاح واجهة برمجة التطبيقات في المستندات الخاصة بواجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) المحددة التي تهمّك.

لمعرفة القيود المقترَحة لواجهة برمجة التطبيقات، يُرجى الاطّلاع على القيود المقترَحة لواجهة برمجة التطبيقات.

التحقّق من استخدام مفتاح واجهة برمجة التطبيقات

إذا كنت تحظر مفاتيح واجهة برمجة التطبيقات بعد إنشائها أو إذا أردت معرفة واجهات برمجة التطبيقات التي يستخدمها مفتاح معيّن لتتمكن من فرض قيود عليها، عليك التحقّق من استخدامك لمفتاح واجهة برمجة التطبيقات. توضح لك هذه الخطوات الخدمات وطرق واجهة برمجة التطبيقات التي يتم فيها استخدام مفتاح واجهة برمجة التطبيقات. وإذا لاحظت أي استخدام خارج نطاق خدمات "منصة خرائط Google"، تحقَّق لمعرفة ما إذا كنت بحاجة إلى إضافة المزيد من القيود لتجنّب الاستخدام غير المرغوب فيه. يمكنك استخدام أداة استكشاف مقاييس Cloud Console في "منصة خرائط Google" للمساعدة في تحديد قيود واجهة برمجة التطبيقات والتطبيقات التي يجب تطبيقها على مفتاح واجهة برمجة التطبيقات:

تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات الخاص بك

تسمح لك تقارير المقاييس التالية بتحديد واجهات برمجة التطبيقات التي تستخدم مفاتيح واجهة برمجة التطبيقات. استخدِم هذه التقارير لإجراء ما يلي:

  • الاطّلاع على طريقة استخدام مفاتيح واجهة برمجة التطبيقات
  • التعرّف على الاستخدام غير المتوقَّع
  • يمكنك المساعدة في التأكّد مما إذا كان المفتاح غير المستخدَم يمكن حذفه بأمان. للحصول على معلومات حول حذف مفتاح واجهة برمجة التطبيقات، يمكنك الاطّلاع على حذف مفاتيح واجهة برمجة التطبيقات غير المستخدمة.

عند تطبيق القيود المتعلّقة بواجهة برمجة التطبيقات، استخدِم هذه التقارير لإنشاء قائمة بواجهات برمجة التطبيقات من أجل التصريح بها، أو للتحقق من صحة الاقتراحات المتعلّقة بقيود مفتاح واجهة برمجة التطبيقات التي يتم إنشاؤها تلقائيًا. لمزيد من المعلومات عن القيود المقترَحة، يُرجى الاطّلاع على تطبيق القيود المقترَحة. لمزيد من المعلومات حول استخدام مستكشف المقاييس، يمكنك الاطلاع على إنشاء رسوم بيانية باستخدام مستكشف المقاييس.

  1. انتقِل إلى مستكشف المقاييس في Google Cloud Console.

  2. سجّل الدخول وحدد المشروع لمفاتيح واجهة برمجة التطبيقات التي تريد التحقق منها.

  3. انتقِل إلى صفحة مستكشف المقاييس لنوع واجهة برمجة التطبيقات التي تستخدمها:

    • بالنسبة إلى مفاتيح واجهة برمجة التطبيقات التي تستخدم أي واجهة برمجة تطبيقات باستثناء واجهة برمجة التطبيقات لتضمين الخرائط: انتقِل إلى صفحة مستكشف المقاييس.

    • بالنسبة إلى مفاتيح واجهة برمجة التطبيقات التي تستخدم واجهة برمجة تطبيقات تضمين الخرائط: انتقِل إلى مستكشف المقاييس.

  4. افحص كل مفتاح واجهة برمجة تطبيقات:

    1. انقر على إضافة فلتر.

    2. اختَر التصنيف credential_id.

    3. اختَر value المقابلة للمفتاح الذي تريد فحصه.

    4. يُرجى تحديد واجهات برمجة التطبيقات التي يُستخدم مفتاح واجهة برمجة التطبيقات هذا لها، والتأكّد من أنّه من المتوقع أن يتم استخدام مفتاح واجهة برمجة التطبيقات هذا.

    5. وبعد الانتهاء، اختَر إزالة الفلتر في نهاية سطر الفلتر النشط لحذف الفلتر الإضافي.

  5. كرر هذا لأي مفاتيح متبقية.

  6. قصر مفاتيح واجهة برمجة التطبيقات على واجهات برمجة التطبيقات المستخدَمة فقط.

  7. وإذا اكتشفت استخدامًا غير مصرَّح به، يمكنك الاطّلاع على التعامل مع الاستخدام غير المصرَّح به لمفتاح واجهة برمجة التطبيقات.

اختيار النوع الصحيح لقيود التطبيق باستخدام مستكشف المقاييس

بعد التحقق واتّخاذ أي إجراءات مطلوبة لضمان عدم استخدام مفتاح واجهة برمجة التطبيقات إلا مع خدمات "منصة خرائط Google" التي تستخدمها، احرص أيضًا على أن يحتوي مفتاح واجهة برمجة التطبيقات على قيود التطبيق الصحيحة.

إذا اقترح مفتاح واجهة برمجة التطبيقات قيودًا على مفتاح واجهة برمجة التطبيقات، عليك تطبيقها. لمزيد من المعلومات، يمكنك الاطّلاع على تطبيق القيود المقترَحة على مفاتيح واجهة برمجة التطبيقات.

إذا لم يتضمن مفتاح واجهة برمجة التطبيقات اقتراحات بفرض قيود، عليك تحديد نوع القيود المفروضة على التطبيق استنادًا إلى سياسة platform_type التي تم الإبلاغ عنها باستخدام أداة "مستكشف المقاييس":

  1. انتقِل إلى مستكشف المقاييس في Google Cloud Console.

  2. سجِّل الدخول واختَر المشروع لواجهات برمجة التطبيقات التي تريد التحقّق منها.

  3. انتقِل إلى صفحة مستكشف المقاييس هذه: مستكشف المقاييس.

  4. افحص كل مفتاح واجهة برمجة تطبيقات:

    1. انقر على إضافة فلتر.

    2. اختَر التصنيف credential_id.

    3. اختَر value المقابلة للمفتاح الذي تريد فحصه.

    4. وبعد الانتهاء، اختَر إزالة الفلتر في نهاية سطر الفلتر النشط لحذف الفلتر الإضافي.

  5. كرر هذا لأي مفاتيح متبقية.

  6. بعد تحديد نوع النظام الأساسي لمفاتيح واجهة برمجة التطبيقات، عليك تطبيق قيود التطبيق على platform_type:

    PLATFORM_TYPE_JS
    طبِّق القيود على المواقع الإلكترونية على المفتاح.
    PLATFORM_TYPE_ANDROID
    طبِّق قيود تطبيقات Android على المفتاح.
    PLATFORM_TYPE_IOS
    طبِّق قيود تطبيقات iOS على المفتاح.
    PLATFORM_TYPE_WEBSERVICE
    قد تحتاج إلى الاعتماد على قيود عنوان IP على المفتاح لتقييده بشكل صحيح. للمزيد من الخيارات حول واجهة برمجة التطبيقات الثابتة لخدمة "خرائط Google" وواجهة برمجة التطبيقات الثابتة لميزة "التجوّل الافتراضي"، يمكنك الاطّلاع على حماية التطبيقات باستخدام واجهات برمجة تطبيقات الويب الثابت. للحصول على مزيد من التعليمات حول Maps embed API، يمكنك الاطّلاع على المواقع الإلكترونية التي تستخدم Maps embed API.
    يستخدم مفتاح واجهة برمجة التطبيقات الخاص بي أنواعًا متعددة من الأنظمة الأساسية
    لا يمكن تأمين زياراتك بشكلٍ سليم باستخدام مفتاح واجهة برمجة تطبيقات واحد فقط. يجب الانتقال إلى مفاتيح متعددة لواجهة برمجة التطبيقات. للمزيد من المعلومات، يُرجى الاطّلاع على مقالة نقل البيانات إلى مفاتيح متعددة لواجهة برمجة التطبيقات.

استخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق

يحد هذا الممارسة من نطاق كل مفتاح. فإذا تم اختراق أحد مفاتيح واجهة برمجة التطبيقات، يمكنك حذف المفتاح المتأثر أو إعادة إنشائه بدون الحاجة إلى تحديث مفاتيح واجهة برمجة التطبيقات الأخرى. يمكنك إنشاء ما يصل إلى 300 مفتاح لواجهة برمجة التطبيقات لكل مشروع. لمزيد من المعلومات، راجِع الحدود المفروضة على مفاتيح واجهة برمجة التطبيقات.

على الرغم من أنّ استخدام مفتاح واجهة برمجة تطبيقات واحد لكل تطبيق مثالي لأغراض تتعلّق بالأمان، يمكنك استخدام المفاتيح المشروطة في عدة تطبيقات ما دامت تستخدم نوع قيود التطبيق نفسه.

تطبيق القيود المقترَحة لمفتاح واجهة برمجة التطبيقات

بالنسبة إلى بعض مالكي المشاريع والمحرِّرين، تقترح Google Cloud Console قيودًا معيّنة خاصة بمفاتيح واجهة برمجة التطبيقات على مفاتيح واجهة برمجة التطبيقات غير المشروطة بناءً على استخدامهم ونشاطهم في "منصة خرائط Google".

ستظهر الاقتراحات كخيارات معبأة مسبقًا في صفحة بيانات اعتماد "منصة خرائط Google"، في حال توفّرها.

الأسباب المحتملة لعدم ظهور اقتراح أو اقتراح غير مكتمل

  • تستخدِم (أيضًا) مفتاح واجهة برمجة التطبيقات في خدمات أخرى غير خدمات "منصة خرائط Google". إذا لاحظت استخدامًا لخدمات أخرى، لا تطبِّق الاقتراح بدون أولاً تنفيذ ما يلي:

    1. تحقَّق من أنّ استخدام واجهة برمجة التطبيقات الذي يظهر لك في مستكشف مقاييس "Google Cloud Console" سليم.

    2. إضافة الخدمات المفقودة يدويًا إلى قائمة واجهات برمجة التطبيقات المراد تفويضها.

    3. إضافة يدويًا أي قيود تطبيقات مفقودة للخدمات التي تمت إضافتها إلى قائمة واجهات برمجة التطبيقات إذا كانت الإضافة الأخرى تتطلّب نوعًا مختلفًا من قيود التطبيق، يُرجى الاطّلاع على نقل البيانات إلى مفاتيح متعددة لواجهة برمجة التطبيقات.

  • لا يتم استخدام مفتاح واجهة برمجة التطبيقات في حِزم تطوير البرامج (SDK) أو واجهات برمجة التطبيقات من جهة العميل.

  • استخدام مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني صغير الحجم لم يشهد أي استخدام خلال آخر 60 يومًا

  • لقد أنشأت مفتاحًا جديدًا مؤخرًا أو استخدمت مؤخرًا مفتاحًا حاليًا في تطبيق جديد. في هذه الحالة، ما عليك سوى الانتظار لبضعة أيام أخرى لتتمكّن من تعديل الاقتراحات.

  • استخدام مفتاح واجهة برمجة التطبيقات في عدة تطبيقات قد تتطلب أنواعًا متضاربة من قيود التطبيقات، أو استخدام مفتاح واجهة برمجة التطبيقات نفسه في عدد كبير جدًا من التطبيقات أو المواقع الإلكترونية المختلفة في كلتا الحالتين، كأفضل ممارسة، يجب عليك الانتقال إلى مفاتيح متعددة. لمزيد من التفاصيل، يُرجى الاطّلاع على النقل إلى مفاتيح متعددة لواجهة برمجة التطبيقات.

الأسباب التي قد تؤدي إلى ظهور اقتراحات غير مرئية في الرسوم البيانية

  1. افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.

  2. انقر على تطبيق القيود المقترَحة إذا كانت متاحة.

    تطبيق القيود المقترَحة

    ملاحظة: إذا لم تظهر لك أي قيود مقترَحة، يمكنك الاطّلاع على القسم ضبط قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات لضبط القيود المناسبة.

  3. اختر التحقق من استخدام واجهة برمجة التطبيقات للتحقق من الخدمات التي يتم استخدام مفتاح واجهة برمجة التطبيقات فيها. إذا لم يظهر لك سوى خدمات "منصة خرائط Google"، يمكنك الإيقاف المؤقت لمراجعة خطوات الاقتراحات المذكورة أعلاه يدويًا. يمكنك الاطّلاع على خطوات تحديد المشاكل وحلّها في بداية القسم تطبيق القيود المقترَحة لمفتاح واجهة برمجة التطبيقات.

  4. تحقق جيدًا من أن القيود المملوءة مسبقًا تتطابق مع المواقع الإلكترونية والتطبيقات التي تتوقع استخدام مفتاح واجهة برمجة التطبيقات عليها.

    أفضل الممارسات: يمكنك توثيق وإزالة أي قيود مفروضة على التطبيقات أو واجهات برمجة التطبيقات غير المرتبطة بخدماتك. إذا تعطل شيء ما بسبب التبعية غير المتوقعة، فيمكنك إضافة التطبيقات أو واجهات برمجة التطبيقات المطلوبة مرة أخرى.

    • إذا لاحظت أنّ أحد التطبيقات أو المواقع الإلكترونية أو واجهات برمجة التطبيقات غير متوفّر بوضوح في اقتراحك، يمكنك إضافته يدويًا أو الانتظار لمدة بضعة أيام للسماح بتعديل الاقتراح.

    • وإذا كنت بحاجة إلى مزيد من المساعدة بشأن اقتراحك المقترَح، يمكنك التواصل مع فريق الدعم.

  5. حدّد تطبيق.

الإجراءات التي يجب اتّخاذها في حال رفض طلبك بعد تطبيق الاقتراح

إذا لاحظت أنّه يتم رفض تطبيق أو موقع إلكتروني بعد فرض قيود، ابحث عن قيد التطبيق الذي تحتاج إلى إضافته في رسالة خطأ الاستجابة من واجهة برمجة التطبيقات.

بالنسبة إلى حِزم تطوير البرامج (SDK) من جهة العميل، يُرجى الاطّلاع على ما يلي:

للتحقُّق من القيود المطلوبة على واجهة برمجة التطبيقات، يُرجى الاطِّلاع على تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات.

إذا لم تتمكّن من تحديد القيود التي سيتم تطبيقها:

  1. يمكنك توثيق القيود الحالية للرجوع إليها في المستقبل.
  2. ننصحك بإزالتها مؤقتًا أثناء التحقيق في المشكلة. يمكنك التحقّق من استخدامك لمفتاح واجهة برمجة التطبيقات بمرور الوقت من خلال اتّباع الخطوات الواردة في التحقّق من استخدام مفتاح واجهة برمجة التطبيقات.
  3. يُرجى التواصل مع فريق الدعم إذا لزم الأمر.

حذف مفاتيح واجهة برمجة التطبيقات غير المستخدمة

قبل حذف مفتاح واجهة برمجة التطبيقات، تأكَّد من عدم استخدامه في عملية الإنتاج. إذا لم تكن هناك حركة مرور ناجحة، فمن المحتمل أن يكون المفتاح آمنًا لحذفه. ولمزيد من المعلومات، يُرجى الاطّلاع على التحقق من استخدام مفتاح واجهة برمجة التطبيقات.

لحذف مفتاح واجهة برمجة التطبيقات:

  1. افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.

  2. اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حذفه.

  3. انقر على الزر حذف بالقرب من أعلى الصفحة.

  4. في صفحة حذف بيانات الاعتماد، اختَر حذف.

    يستغرق حذف مفتاح واجهة برمجة التطبيقات بضع دقائق. بعد اكتمال عملية النشر، يتم رفض أي زيارات تستخدم مفتاح واجهة برمجة التطبيقات المحذوف.

يجب توخي الحذر عند إعادة إنشاء مفاتيح واجهة برمجة التطبيقات.

تؤدي إعادة إنشاء مفتاح واجهة برمجة التطبيقات إلى إنشاء مفتاح جديد يتضمّن جميع قيود المفتاح القديم. تبدأ هذه العملية أيضًا موقّتًا مدته 24 ساعة يتم بعدها حذف مفتاح واجهة برمجة التطبيقات القديم.

وخلال هذه الفترة، يتم قبول المفتاح القديم والجديد، ما يمنحك فرصة لنقل تطبيقاتك لاستخدام المفتاح الجديد. ومع ذلك، بعد انقضاء هذه الفترة الزمنية، ستتوقف أي تطبيقات ما زالت تستخدم مفتاح واجهة برمجة التطبيقات القديم عن العمل.

قبل إعادة إنشاء مفتاح واجهة برمجة التطبيقات:

إذا لم تكُن الاقتراحات السابقة ممكنة، وكان عليك إعادة إنشاء مفتاح واجهة برمجة التطبيقات الخاص بك لمنع الاستخدام غير المصرّح به، اتّبِع الخطوات التالية:

  1. افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.

  2. افتح مفتاح واجهة برمجة التطبيقات الذي تريد إعادة إنشائه.

  3. في أعلى الصفحة، اختر إعادة إنشاء المفتاح.

  4. اختَر Replace key (استبدال المفتاح).

ملاحظة: إذا لزم الأمر، يمكنك إعادة أي مفتاح تمت إعادة إنشائه إلى إصداره السابق. ما مِن حدود زمنية للتراجع.

لإعادة مفتاح مُعاد إنشاؤه

  1. افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.

  2. افتح مفتاح واجهة برمجة التطبيقات الذي تريد التراجع عنه.

  3. اختَر العودة إلى المفتاح السابق.

  4. في مربّع الحوار إلغاء التغييرات الأخيرة، اختَر إلغاء التغييرات الأخيرة على المفتاح.

بعد العودة إلى الحالة السابقة، يصبح الإصدار "الجديد" السابق من المفتاح هو الإصدار السابق، ويتم ضبط موقّت جديد لإيقافه على مدار 24 ساعة. من الممكن العودة بين هاتين القيمتين الرئيسيتين حتى تعيد إنشاء المفتاح مرة أخرى.

في حال إعادة إنشاء المفتاح مرة أخرى، سيستبدل هذا المفتاح قيمة المفتاح القديمة غير النشطة.

النقل إلى مفاتيح متعددة لواجهة برمجة التطبيقات

للانتقال من استخدام مفتاح واجهة برمجة تطبيقات واحد لتطبيقات متعددة إلى مفتاح واجهة برمجة تطبيقات واحد فريد لكل تطبيق، نفِّذ ما يلي:

  1. تحديد التطبيقات التي تحتاج إلى مفاتيح جديدة:

    • من الأسهل تحديث تطبيقات الويب، إذ يمكنك التحكّم في جميع الرموز البرمجية. يمكنك التخطيط لتحديث جميع مفاتيح تطبيقاتك المستندة إلى الويب.
    • تطبيقات الأجهزة المحمولة أصعب بكثير، حيث يجب على العملاء تحديث تطبيقاتهم قبل استخدام المفاتيح الجديدة.
  2. إنشاء المفاتيح الجديدة وحصرها: أضِف قيودًا على التطبيق وقيدًا واحدًا على الأقل لواجهة برمجة التطبيقات. للحصول على مزيد من المعلومات، اطّلِع على أفضل الممارسات المقترَحة.

  3. إضافة المفاتيح الجديدة إلى تطبيقاتك: بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، قد تستغرق هذه العملية أشهرًا إلى أن يتم تحديث جميع المستخدمين إلى أحدث تطبيق باستخدام مفتاح واجهة برمجة التطبيقات الجديد.

حماية التطبيقات باستخدام واجهات برمجة تطبيقات الويب الثابت

واجهات برمجة التطبيقات الثابتة للويب، مثل واجهة برمجة تطبيقات الخرائط الثابتة وواجهة برمجة التطبيقات الثابتة للتجوّل الافتراضي، تشبه طلبات البيانات من واجهة برمجة تطبيقات خدمات الويب.

يمكنك استدعاء كليهما باستخدام واجهة برمجة تطبيقات HTTPS REST بسيطة، ويمكنك عادةً إنشاء عنوان URL لطلب واجهة برمجة التطبيقات على الخادم. ومع ذلك، بدلاً من عرض استجابة JSON، تنشئ واجهات برمجة التطبيقات الثابتة للويب صورة يمكنك تضمينها في رمز HTML الذي تم إنشاؤه. والأهم من ذلك، عادةً ما يستدعي العميل النهائي وليس الخادم خدمة "منصة خرائط Google".

استخدام توقيع رقمي

كإحدى أفضل الممارسات، استخدِم دائمًا التوقيعات الرقمية بالإضافة إلى مفتاح واجهة برمجة التطبيقات. راجِع أيضًا عدد الطلبات غير الموقَّعة التي تريد السماح بها يوميًا وعدِّل حصص الطلبات غير الموقَّعة وفقًا لذلك.

لمزيد من التفاصيل حول التوقيعات الرقمية، يُرجى الاطّلاع على دليل التوقيع الرقمي.

حماية سر التوقيع

لحماية واجهات برمجة التطبيقات الثابتة للويب، لا تُضمِّن أسرار توقيع واجهة برمجة التطبيقات مباشرةً في الرمز أو في شجرة المصدر، ولا تعرضها في التطبيقات من جهة العميل. اتّبِع أفضل الممارسات التالية لحماية أسرار التوقيع:

  • توقيع طلباتك من جهة الخادم، وليس من جهة العميل: فإذا نفّذت توقيع العميل في JavaScript، سيتم عرضه لأي شخص يزور موقعك. لذلك، بالنسبة إلى الصور التي يتمّ إنشاؤها ديناميكيًا، عليك دائمًا إنشاء عناوين URL لطلب واجهة برمجة التطبيقات الثابتة للموقع الخرائط وواجهة برمجة التطبيقات الثابتة لميزة "التجوّل الافتراضي" من جانب الخادم عند عرض صفحة الويب. بالنسبة إلى محتوى الويب الثابت، يمكنك استخدام أداة توقيع عنوان URL الآن في صفحة بيانات اعتماد "منصة خرائط Google" في Cloud Console.

  • تخزين أسرار التوقيع خارج شجرة المصدر ورمز المصدر للتطبيق. وإذا وضعت أسرار التوقيع أو أي معلومات خاصة أخرى في متغيرات بيئية أو أدرجت ملفات تم تخزينها بشكل منفصل ثم شاركت الرمز الخاص بك، لن يتم تضمين أسرار التوقيع في الملفات المشتركة. إذا كنت تخزّن أسرار التوقيع أو أي معلومات خاصة أخرى في الملفات، احتفِظ بالملفات خارج الشجرة المصدر في تطبيقك للحفاظ على أسرار التوقيع في نظام التحكّم في رمز المصدر. هذا الاحتياط مهم بشكل خاص إذا كنت تستخدم نظام إدارة كود المصدر العام، مثل GitHub.

حماية مفتاح واجهة برمجة التطبيقات في التطبيقات التي تستخدم خدمات الويب

تخزين مفاتيح واجهة برمجة التطبيقات خارج رمز المصدر أو شجرة المصدر لتطبيقك: إذا وضعت مفاتيح واجهة برمجة التطبيقات أو أي معلومات أخرى في متغيرات بيئة أو إذا ضمّنت ملفات تم تخزينها بشكل منفصل ثم شاركت الرمز البرمجي، لن يتم تضمين مفاتيح واجهة برمجة التطبيقات في الملفات المشتركة. ويُعتبر ذلك أمرًا مهمًا بشكل خاص إذا كنت تستخدم نظام إدارة رموز المصادر العامة، مثل GitHub.

حماية مفتاح واجهة برمجة التطبيقات وسر التوقيع في التطبيقات المتوافقة مع الأجهزة الجوّالة باستخدام خدمات الويب أو واجهات برمجة تطبيقات الويب الثابتة

لحماية التطبيقات المتوافقة مع الأجهزة الجوّالة، يمكنك استخدام ملف تخزين مفاتيح آمن أو خادم وكيل آمن:

  • خزِّن مفتاح واجهة برمجة التطبيقات أو مفتاح التوقيع في ملف تخزين مفاتيح آمن: تزيد هذه الخطوة من صعوبة استخلاص مفاتيح واجهة برمجة التطبيقات والبيانات الخاصة الأخرى مباشرةً من التطبيق.

  • استخدام خادم وكيل آمن يوفر الخادم الوكيل مصدرًا قويًا للتفاعل باستخدام واجهة برمجة تطبيقات Google Maps Platform API المناسبة. للحصول على مزيد من المعلومات عن استخدام خادم وكيل، يُرجى الاطّلاع على مقالة Living Vicariously: Use Proxy Servers with Google Data API Client Libraries.

    • أنشِئ طلبات "منصة خرائط Google" على الخادم الوكيل. لا تسمح للعملاء بإرسال طلبات عشوائية من واجهة برمجة التطبيقات عبر الخادم الوكيل.

    • بعد معالجة استجابات "منصة خرائط Google" على الخادم الوكيل. قم بتصفية البيانات التي لا يحتاجها العميل.

التعامل مع الاستخدام غير المصرّح به لمفتاح واجهة برمجة التطبيقات

إذا اكتشفت استخدام مفتاح واجهة برمجة تطبيقات غير مصرح به، يمكنك تنفيذ ما يلي لحل المشكلة:

  1. تقييد مفاتيحك: إذا كنت قد استخدمت المفتاح نفسه في عدة تطبيقات، ننصحك بالنقل إلى مفاتيح واجهة برمجة تطبيقات متعددة واستخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق. لمزيد من التفاصيل، يُرجى الاطّلاع على:

  2. تتم إعادة إنشاء المفاتيح فقط إذا لم تتمكّن من تقييدها. يُرجى قراءة القسم توخّي الحذر عند إعادة إنشاء مفاتيح واجهة برمجة التطبيقات قبل المتابعة.

  3. إذا استمرّت المشاكل أو احتجت إلى المساعدة، يُرجى التواصل مع فريق الدعم.

القيود المفروضة على التطبيقات وواجهة برمجة التطبيقات المقترَحة

تقترح الأقسام التالية القيود المناسبة على التطبيقات وواجهة برمجة التطبيقات لكل واجهة برمجة تطبيقات أو حزمة SDK أو خدمة في Google Maps Platform.

قيود واجهة برمجة التطبيقات المقترحة

تنطبق الإرشادات التالية حول قيود واجهة برمجة التطبيقات على "منصة خرائط Google" بالكامل:

  • عليك حصر مفتاح واجهة برمجة التطبيقات على واجهات برمجة التطبيقات التي تستخدِمه معها فقط، مع الاستثناءات التالية:

    • إذا كان تطبيقك يستخدم "حزمة تطوير برامج الأماكن" لنظام التشغيل Android أو حزمة تطوير برامج الأماكن لنظام التشغيل iOS، يُرجى تفويض واجهة برمجة تطبيقات الأماكن.

    • إذا كان تطبيقك يستخدم Maps JavaScript API، ننصحك دائمًا باستخدامه على مفتاحك.

    • إذا كنت تستخدم أيضًا أيًا من خدمات Maps JavaScript API التالية، عليك أيضًا تفويض واجهات برمجة التطبيقات التالية:

    خدمة تقييد واجهة برمجة التطبيقات
    Directions Service وMaps JavaScript API Directions API
    خدمة Distance Matrix وMaps JavaScript API Distance Matrix API
    خدمة تحديد الارتفاع وMaps JavaScript API Elevation API
    خدمة ترميز المواقع الجغرافية وMaps JavaScript API Geocoding API
    Places Library, Maps JavaScript API واجهة برمجة تطبيقات الأماكن

إليك بعض الأمثلة:

  • أنت تستخدم حزمة SDK للخرائط لنظام التشغيل Android وحزمة SDK للأماكن لنظام التشغيل Android، لذا يمكنك تضمين حزمة SDK للخرائط لنظام التشغيل Android وواجهة برمجة تطبيقات الأماكن كقيود لواجهة برمجة التطبيقات.

  • يستخدم موقعك الإلكتروني خدمة Maps JavaScript API و" Maps Static API"، لذلك يمكنك إضافة قيود على واجهة برمجة التطبيقات لجميع واجهات برمجة التطبيقات التالية:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

قيود التطبيق الموصى بها

المواقع الإلكترونية التي تستخدم Maps JavaScript API أو واجهة برمجة تطبيقات الويب الثابتة

بالنسبة إلى المواقع الإلكترونية التي تستخدم خدمات JavaScript في "خرائط Google" أو واجهات برمجة تطبيقات الويب الثابتة، استخدِم القيود المفروضة على التطبيق Websites.

استخدام للمواقع الإلكترونية التي تستخدم خدمات JavaScript وواجهات برمجة التطبيقات هذه:

1 بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، يمكنك استخدام حزمة تطوير البرامج (SDK) الخاصة بخرائط Google لنظام التشغيل Android وحزمة تطوير البرامج (SDK) الخاصة بخرائط Google لنظام التشغيل iOS.

2 يُرجى أيضًا الاطّلاع على حماية التطبيقات المتوافقة مع الأجهزة الجوّالة باستخدام خدمة الويب أو واجهات برمجة تطبيقات الويب الثابت.

المواقع الإلكترونية التي تستخدم Maps embed API

مع أنّ استخدام "واجهة برمجة التطبيقات لتضمين الخرائط" مجاني، لا يزال عليك تقييد أي مفتاح واجهة برمجة تطبيقات مستخدَم لمنع إساءة الاستخدام في الخدمات الأخرى.

أفضل الممارسات: يمكنك إنشاء مفتاح منفصل لواجهة برمجة التطبيقات لاستخدام واجهة برمجة تطبيقات تضمين الخرائط، وحصر هذا المفتاح على واجهة برمجة التطبيقات لتضمين الخرائط فقط. ويؤدي هذا التقييد إلى تأمين المفتاح بشكل كافٍ، ما يمنع استخدامه غير المصرَّح به على أي خدمة أخرى من Google.

إذا لم تتمكّن من الفصل بين استخدام "واجهة برمجة التطبيقات لتضمين خرائط Google" بمفتاح منفصل لواجهة برمجة تطبيقات، عليك تأمين مفتاحك باستخدام القيود المفروضة على التطبيق Websites.

التطبيقات والخوادم التي تستخدم خدمات الويب

بالنسبة إلى التطبيقات والخوادم التي تستخدم خدمات الويب، عليك استخدام قيود التطبيق IP addresses.

الاستخدام للتطبيقات والخوادم التي تستخدم واجهات برمجة التطبيقات التالية:

3 بالنسبة إلى تطبيقات الأجهزة الجوّالة، يمكنك استخدام حزمة SDK للأماكن لنظام التشغيل Android وحزمة تطوير برامج الأماكن لنظام التشغيل iOS.

التطبيقات المتوافقة مع Android

بالنسبة إلى التطبيقات على Android، يجب استخدام قيد Android apps المفروض على التطبيقات. يتم استخدامها للتطبيقات والخوادم التي تستخدم حِزم تطوير البرامج (SDK) التالية:

بالإضافة إلى ذلك، يمكنك منع التحقّق غير المقصود من مفاتيح واجهة برمجة التطبيقات في عنصر التحكّم في الإصدار من خلال استخدام المكوّن الإضافي Secrets Gradle لإدخال الأسرار من ملف محلي بدلاً من تخزينها في ملف بيان Android.

تطبيقات iOS

بالنسبة إلى التطبيقات التي تعمل بنظام التشغيل iOS، يجب استخدام قيد iOS apps على التطبيق. يتم استخدامها للتطبيقات والخوادم التي تستخدم حِزم تطوير البرامج (SDK) التالية: