إرشادات الأمان في "منصة خرائط Google"

يجب أن تستخدم التطبيقات والمشاريع التي تستخدم واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK) في Google Maps Platform مفاتيح واجهة برمجة التطبيقات أو بروتوكول OAuth 2.0، إذا كان متاحًا، لمصادقة نفسها.

توضّح لك أفضل الممارسات هذه كيفية تأمين إذن الوصول إلى "منصّة خرائط Google".

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

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

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

لمزيد من التفاصيل حول التواقيع الرقمية المتوافقة مع واجهتَي برمجة التطبيقات Maps Static API وStreet View Static API، يُرجى الاطّلاع على دليل التواقيع الرقمية.

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

لتعزيز الأمان وتجنُّب تحصيل رسوم منك مقابل الاستخدام غير المصرّح به، اتّبِع أفضل الممارسات التالية لأمان واجهات برمجة التطبيقات لجميع واجهات برمجة التطبيقات أو حِزم تطوير البرامج (SDK) أو الخدمات في Google Maps Platform:

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

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

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

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

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

تقسيم الاستخدام من جهة العميل ومن جهة الخادم إلى مشاريع منفصلة

إيقاف الخدمات غير المستخدمة

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

استخدام حِزم SDK من جهة العميل

تأمين طلبات خدمة الويب من جهة العميل

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

حماية استخدام Static Web API

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

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

استخدام OAuth للتطبيقات التي تعمل على جانب الخادم

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

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

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

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

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

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

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

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

مزيد من المعلومات

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

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

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

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

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

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

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

  1. افتح صفحة بيانات اعتماد Google Maps Platform في وحدة تحكّم Google Cloud.

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

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

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

  4. اختَر أحد أنواع القيود وقدِّم المعلومات المطلوبة وفقًا لقائمة القيود.

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

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

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

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

  1. افتح صفحة بيانات اعتماد Google Maps Platform في وحدة تحكّم Google Cloud.

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

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

    • انقر على تقييد المفتاح.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. اختَر إضافة فلتر.

    2. انقر على التصنيف credential_id.

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

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

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

  5. كرِّر الخطوات لأي مفاتيح متبقية.

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

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

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

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

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

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

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

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

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

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

    1. اختَر إضافة فلتر.

    2. انقر على التصنيف credential_id.

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

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

  5. كرِّر الخطوات لأي مفاتيح متبقية.

  6. بعد تحديد نوع المنصة لمفاتيح واجهة برمجة التطبيقات، يمكنك تطبيق قيد التطبيق على ذلك 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.

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

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

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

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

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

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

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

واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK) في Google Maps Platform المتوافقة مع الاقتراحات المبرمَجة

  • واجهة برمجة تطبيقات JavaScript للخرائط، بما في ذلك خدمة "الاتجاهات" (القديمة)، خدمة "مصفوفة المسافات" (القديمة)، خدمة "الارتفاع"، خدمة "ترميز المواقع الجغرافية" فئة "المكان"، أداة "الإكمال التلقائي للأماكن" (الجديدة)، Place Autocomplete Data API، مكتبة "الأماكن"، خدمة "الأماكن" أداة "الإكمال التلقائي للأماكن"

  • ‫Maps Static API وStreet View Static API

  • Maps Embed API

  • حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android وحزمة تطوير برامج الأماكن لتطبيقات Android و حزمة تطوير البرامج للتنقّل على أجهزة Android

  • حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS وحزمة تطوير برامج "أماكن Google" لنظام التشغيل iOS وحزمة تطوير البرامج Swift لـ "أماكن Google" لنظام التشغيل iOS وحزمة تطوير البرامج للتنقّل باتّجاهات مفصّلة لنظام التشغيل iOS

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

أسباب عدم ظهور أي اقتراح

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

    إذا لاحظت استخدامًا على خدمات أخرى، لا تطبِّق الخطوة المقترَحة بدون إجراء ما يلي أولاً:

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

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

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

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

  • إذا كنت تستخدِم مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني منخفضَي الحجم لم يتم استخدامهما خلال آخر 60 يومًا

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

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

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

  • إذا كنت تستخدِم مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني منخفضَي الحجم لم يتم استخدامهما خلال آخر 60 يومًا

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

    إذا لاحظت استخدامًا على خدمات أخرى، لا تطبِّق الخطوة المقترَحة بدون إجراء ما يلي أولاً:

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

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

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

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

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

  1. افتح صفحة بيانات اعتماد Google Maps Platform في وحدة تحكّم Google Cloud.

  2. اختَر تطبيق القيود المقترَحة، إذا كان هذا الخيار متاحًا.

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

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

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

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

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

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

  5. انقر على تطبيق.

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

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

حِزم تطوير البرامج (SDK) وواجهات برمجة التطبيقات من جهة العميل

التطبيقات المستندة إلى المتصفّح وWebview

عادةً ما تُخفي المتصفحات الحديثة رأس Referer في طلبات المواقع الإلكترونية المختلفة لأسباب تتعلّق بالخصوصية، وغالبًا ما تزيل الرأس إلى Origin. ومع ذلك، يعتمد السلوك الدقيق على referrer-policy المُطبَّقة للموقع الإلكتروني المضيف، وقد يختلف أيضًا استنادًا إلى متصفّح المستخدم وإصداره.

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

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

تعليمات تحديد المشاكل وحلّها في التطبيقات المستندة إلى المتصفّح وWebview:

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

    تكون مخططات URI غير الشائعة متوافقة جزئيًا. إذا كانت أجزاء من تطبيقك لا تعمل باستخدام مخطّط عنوان URL غريب، حتى بعد تفويض المُحيل المطلوب، من المرجّح أن تحتاج إلى استضافة تطبيقك عن بُعد على خادم وتحميله عبر HTTPS (أو HTTP).

    إذا كنت بحاجة إلى مساعدة بشأن أنظمة معرِّفات الموارد المنتظمة (URI) الغريبة، تواصَل مع فريق الدعم.

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

    لا تتوفّر أنظمة معرِّفات الموارد المنتظمة (URI) غير الشائعة.

تطبيقات Android

استخدام Android Debug Bridge ‏ (adb) أو Logcat

تطبيقات iOS

راجِع مقالة عرض رسائل السجلّ.

التطبيقات التي تستدعي خدمات الويب مباشرةً

بالنسبة إلى التطبيقات التي تستدعي واجهات برمجة التطبيقات HTTPS REST API أو نقاط نهاية gRPC في "منصّة خرائط Google" مباشرةً بدون استخدام حزمة تطوير البرامج (SDK) من "منصّة خرائط Google" على جانب العميل، يُرجى الاطّلاع على النقاط التالية:

تطبيقات Android وiOS

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

إذا سجّل تطبيقك ردود أخطاء واجهة برمجة التطبيقات Maps Platform API، قد تكون الخطوات المذكورة أعلاه لحِزم SDK من جهة العميل مفيدة أيضًا لتحديد وحلّ مشاكل المصادقة.

التطبيقات من جهة الخادم

إنّ التطبيقات من جهة الخادم التي تعتمد على مفاتيح واجهة برمجة التطبيقات هي الأفضل تأمينًا من خلال قيود عناوين IP. إذا كنت قد طبّقت قيودًا على عنوان IP في مفتاحك، وسجلّات الخدمة استجابات أخطاء Maps Platform API، اطّلِع على سجلّات النظام للحصول على مزيد من المعلومات. سيتضمّن ردّ الخطأ عنوان IP الخادم الذي تحتاج إلى تفويضه.

التطبيقات المستندة إلى المتصفّح أو Webview

على الرغم من أنّ واجهات برمجة التطبيقات Maps Static API وStreet View Static API وواجهات برمجة التطبيقات الأحدث من Google Maps Platform ستتيح أيضًا فرض قيود على المُحيل، يُرجى العِلم أنّ متصفّحات الويب أو عروض الويب ستحظر على الأرجح استخدام العنوان Referer إلا مع القيمة Origin لطلبات المصادر من مصادر متعددة، وستتجاهل على الأرجح إرساله بالكامل، مثلاً للموارد التي يتم الوصول إليها محليًا أو للموارد التي يتم عرضها عبر بروتوكولات غير HTTP أو HTTPS.

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

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

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

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

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

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

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

لحذف مفتاح واجهة برمجة التطبيقات، اتّبِع الخطوات التالية:

  1. افتح صفحة بيانات اعتماد Google Maps Platform في وحدة تحكّم Google Cloud.

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

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

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

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

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

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

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

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

  1. افتح صفحة بيانات اعتماد Google Maps Platform في وحدة تحكّم Google Cloud.

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

  3. في أعلى الصفحة، انقر على مفتاح التدوير.

  4. يمكنك اختياريًا تغيير اسم مفتاح واجهة برمجة التطبيقات.

  5. انقر على إنشاء.

  6. عليك تعديل تطبيقاتك لاستخدام المفتاح الجديد.

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

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

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

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

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

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

تقسيم الاستخدام من جهة العميل ومن جهة الخادم إلى مشاريع منفصلة

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

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

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

إيقاف الخدمات غير المستخدَمة

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

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

استخدام حِزم SDK من جهة العميل

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

سيتيح لك استخدام حِزم تطوير البرامج (SDK) من جهة العميل أيضًا اعتماد آلية أمان أكثر تقدمًا، مثل Firebase App Check على مساحات عرض واجهة برمجة التطبيقات (API) لمنصّة خرائط Google التي تتيح ذلك. اطّلِع على مزيد من التفاصيل في مقالة استخدام App Check لتأمين مفتاح واجهة برمجة التطبيقات.

إذا لم تكن حِزم SDK من جهة العميل متاحة لمنصتك، اطّلِع على مقالة تأمين طلبات خدمة الويب من جهة العميل.

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

حماية استخدام Static Web API

تشبه واجهات برمجة التطبيقات الثابتة للويب، مثل Maps Static API و Street View Static API، طلبات البيانات من واجهات برمجة التطبيقات لخدمات الويب.

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

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

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

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

حماية مفتاح التوقيع

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

  • أنشئ عناوين URL لطلباتك الموقَّعة من Maps Static API و Street View Static API من جهة الخادم عند عرض صفحة ويب أو استجابةً لطلب من تطبيقك المتوافق مع الأجهزة الجوّالة.

    بالنسبة إلى محتوى الويب الثابت، يمكنك استخدام التطبيق المصغّر توقيع عنوان URL الآن في صفحة بيانات الاعتماد في "منصة خرائط Google" على Cloud Console.

    بالنسبة إلى محتوى الويب الديناميكي، يمكنك الاطّلاع على عيّنات الرموز البرمجية المتاحة لتوقيع طلبات عناوين URL.

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

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

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

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

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

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

‫OAuth 2.0 هو معيار مفتوح لتفويض الوصول.

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

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

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

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

على سبيل المثال، إليك موضوع OAuth لواجهة برمجة التطبيقات Address Validation API.

تأمين طلبات خدمة الويب من جهة العميل

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

استخدام خادم وكيل

يقدّم استخدام خادم وكيل آمن مصدرًا قويًا للتفاعل مع نقطة نهاية خدمة ويب في "منصّة خرائط Google" من تطبيق من جهة العميل بدون تعريض مفتاح واجهة برمجة التطبيقات أو مفتاح التوقيع أو حساب خدمة Google Cloud لمستخدمين غير مصرَّح لهم.

النقاط الرئيسية:

*   Construct your Google Maps Platform requests on the proxy server.
    **Don't** allow clients to relay arbitrary API calls using the proxy.

*   Post-process the Google Maps Platform responses on your proxy server.
Filter out data that the client doesn't need.

لمزيد من المعلومات حول استخدام خادم وكيل، يُرجى الاطّلاع على مقالة العيش بالنيابة عن الآخرين: استخدام الخوادم الوكيلة مع مكتبات عملاء Google Data API.

تأمين طلبات الخدمة المباشرة الآمنة للموقع الإلكتروني المتوافق مع الأجهزة الجوّالة

إذا لم تتمكّن من إعداد خادم وكيل آمن لتطبيقك على جهة العميل، يمكنك تأمين تطبيقك باتّباع الخطوات التالية:

  1. استخدام عناوين HTTP:

    • Android: استخدِم عنوانَي HTTP X-Android-Package وX-Android-Cert.

    • iOS: استخدِم عنوان HTTP X-Ios-Bundle-Identifier.

  2. أضِف قيود التطبيق المقابلة إلى مفتاح Android أو iOS.

  3. قبل التفكير في إجراء طلبات مباشرةً من تطبيقك المتوافق مع الأجهزة الجوّالة إلى خدمة ويب REST API في "منصّة خرائط Google"، تأكَّد من رفض الطلبات التي تحتوي على معرّفات تطبيقات Android أو iOS غير صحيحة.

    إذا لم تكن قيود تطبيقات Android وiOS متوافقة مع نقطة النهاية التي تم اختبارها، تنصح Google بشدّة باستخدام خادم وكيل آمن بين عملاء الأجهزة الجوّالة ونقطة نهاية خدمة الويب في "منصة خرائط Google".

نصائح لتطبيقات 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 وواجهة برمجة تطبيقات مفاتيح واجهة برمجة التطبيقات السلسلة الثنائي العشري بدون الفواصل.

نصائح لتطبيقات iOS:

  • قبل دمج تطبيقك المتوافق مع نظام التشغيل iOS مع خدمات "منصة خرائط Google"، تأكَّد من أنّ تنسيق معرّف الحِزمة صحيح.

  • يجب عادةً تمرير معرّف الحزمة للحزمة الرئيسية في العنوان X-Ios-Bundle-Identifier عند تفويض تطبيق iOS.

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

استضافة تطبيقاتك المستندة إلى المتصفّح على خادم

تتيح لك الإطارات الأساسية، مثل Apache Cordova، إنشاء تطبيقات مختلطة تعمل على منصات متعددة داخل عرض ويب بسهولة. ومع ذلك، لا يمكن ضمان عمل قيود المواقع الإلكترونية لمعرّفات المفاتيح البرمجية بشكل صحيح، ما لم يتم تحميل تطبيق الويب باستخدام HTTP أو HTTPS من موقع إلكتروني تتحكم فيه ولديك الإذن به.

إنّ الموارد المجمّعة التي يتم تحميلها محليًا من داخل تطبيق مختلط أو التي يتم الوصول إليها باستخدام عنوان URL لملف محلي ستؤدي في كثير من الحالات إلى إيقاف التفويض المستنِد إلى المُحيل، لأنّ محرّك المتصفّح الذي يشغّل webview سيحذف إرسال العنوانReferer. لتجنُّب ذلك، استضِف تطبيقات الويب من جهة الخادم وليس من جهة العميل.

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

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

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

تعليمات دمج App Check:

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

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

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

  2. إذا كنت تستخدم حزمة تطوير البرامج (SDK) لأماكن Google أو واجهة برمجة تطبيقات JavaScript للخرائط، يمكنك أيضًا استخدام أداة "فحص التطبيقات" لتأمين مفتاح واجهة برمجة التطبيقات.

  3. استبدِل المفاتيح أو بدِّلها فقط في الحالات التالية:

    • إذا رصدت استخدامًا غير مصرَّح به للمفاتيح التي لا يمكن حظرها أو سبق أن تم حظرها، ولا يمكن استخدام ميزة "فحص التطبيقات"

    • إذا أردت اتّخاذ إجراء سريع لتأمين مفتاح واجهة برمجة التطبيقات ووقف إساءة الاستخدام، حتى إذا كان ذلك قد يؤثر في الزيارات المشروعة الواردة من تطبيقك

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

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

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

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

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

تنطبق الإرشادات التالية لقيود واجهات برمجة التطبيقات على جميع خدمات Google Maps Platform:

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

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

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

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

      الخدمة قيود واجهة برمجة التطبيقات
      خدمة الاتجاهات (الإصدار القديم) Directions API (الإصدار القديم)
      Distance Matrix Service (الإصدار القديم) Distance Matrix API (الإصدار القديم)
      خدمة الارتفاع Elevation API
      خدمة الترميز الجغرافي Geocoding API
      فئة "المكان"، تطبيق مصغّر للإكمال التلقائي للأماكن (جديد) & Place Autocomplete Data API ‫Places API (الإصدار الجديد)2
      مكتبة "الأماكن"، خدمة "الأماكن" تطبيق مصغّر للإكمال التلقائي للأماكن ‫Places API2

1 لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات حزمة تطوير برامج "الأماكن" لنظام التشغيل Android وحزمة تطوير برامج "الأماكن" لنظام التشغيل iOS.

2 إذا لم تكن متأكّدًا مما إذا كنت بحاجة إلى منح الإذن لواجهة برمجة التطبيقات Places API (الإصدار الجديد) أو واجهة برمجة التطبيقات Places API، يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات Maps JavaScript API.

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

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

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

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

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

المواقع الإلكترونية

بالنسبة إلى المواقع الإلكترونية التي تستخدم خدمات واجهة برمجة التطبيقات JavaScript لخرائط Google أو واجهة برمجة التطبيقات الثابتة لخرائط Google أو واجهة برمجة التطبيقات الثابتة لميزة "التجوّل الافتراضي" أو استدعاء خدمات Google Maps Platform الحديثة مباشرةً عبر واجهة برمجة التطبيقات HTTPS REST API أو gRPC، استخدِم تقييد تطبيق المواقع الإلكترونية:

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

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

3 اطّلِع أيضًا على حماية استخدام Static Web API.

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

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

أفضل الممارسات: أنشئ مفتاح واجهة برمجة تطبيقات منفصلاً لاستخدام Maps Embed API ، وحدِّد هذا المفتاح فقط لواجهة برمجة التطبيقات Maps Embed API. يضمن هذا القيود أمان المفتاح بشكل كافٍ، ويمنع استخدامه غير المصرّح به في أي خدمة أخرى من خدمات Google. للتحكّم بشكل كامل في الأماكن التي يمكن فيها استخدام مفتاح واجهة برمجة التطبيقات لميزة "إدراج خرائط Google"، تنصح Google أيضًا بتطبيق قيود تطبيق المواقع الإلكترونية.

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

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

بالنسبة إلى الخوادم والتطبيقات من جهة العميل من الشبكات الداخلية الموثوق بها للشركات التي تستخدم خدمات الويب مع مفاتيح واجهة برمجة التطبيقات، استخدِم قيد IP addresses للتطبيق.

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

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

5 لاستخدام الأجهزة الجوّالة بأمان، استخدِم خادم وكيل آمن.

6 بالنسبة إلى التطبيقات التي تعمل من جهة العميل، ننصحك باستخدام خدمة رصد الموقع الجغرافي الأصلية التي تقدّمها المنصة، مثل W3C Geolocation لمتصفّحات الويب أو LocationManager أو Fused Location Provider API لنظام التشغيل Android أو إطار عمل Apple Core Location لنظام التشغيل iOS.

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

8 لاستخدام ميزة "التشفير من جهة العميل" بأمان، استخدِم خادم وكيل آمنًا.

تطبيقات Android

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

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

تطبيقات iOS

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

مراجع إضافية