يجب أن تستخدم التطبيقات والمشاريع التي تستخدم واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) في "منصة خرائط Google" مفاتيح واجهة برمجة التطبيقات أو بروتوكول OAuth 2.0، إذا كان متاحًا، لإجراء المصادقة.
توضّح أفضل الممارسات هذه كيفية تأمين الوصول إلى "منصة خرائط Google".
إذا أردت استخدام OAuth 2.0 للسماح بزيارات من خادم إلى خادم، ابحث عن موضوع OAuth في مستندات واجهة برمجة التطبيقات. يُرجى الاطّلاع على مقالة استخدام OAuth للتطبيقات من جهة الخادم لمزيد من التفاصيل.
بالإضافة إلى تطبيق قيود التطبيقات ومفاتيح واجهة برمجة التطبيقات، اتّبِع أي ممارسات أمان تنطبق على منتجات معيّنة في "منصة خرائط Google". على سبيل المثال، يمكنك الاطّلاع على Maps JavaScript API أدناه في القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات.
إذا كانت مفاتيح واجهة برمجة التطبيقات قيد الاستخدام، راجِع الاقتراحات الواردة أدناه في قسم في حال فرض قيود على مفتاح واجهة برمجة تطبيقات قيد الاستخدام.
لمزيد من التفاصيل حول التوقيعات الرقمية المتوافقة مع Maps Static API وStreet View Static API، يُرجى الاطّلاع على دليل التوقيع الرقمي.
أفضل الممارسات المقترَحة
لتعزيز الأمان وتجنُّب تحصيل رسوم منك مقابل الاستخدام غير المصرّح به، اتّبِع أفضل ممارسات الأمان التالية في واجهات برمجة التطبيقات لجميع واجهات برمجة التطبيقات أو حزم تطوير البرامج (SDK) أو الخدمات في "منصة خرائط Google":
يُنصح بها لجميع استخدامات مفاتيح واجهة برمجة التطبيقات
تقييد مفاتيح واجهة برمجة التطبيقات
استخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق
حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة
التحقّق من استخدام مفتاح واجهة برمجة التطبيقات
يُرجى توخّي الحذر عند تدوير مفاتيح واجهة برمجة التطبيقات
تقسيم الاستخدام من جهة العميل ومن جهة الخادم إلى مشاريع منفصلة
اقتراحات إضافية للتطبيقات من جهة العميل
استخدام حِزم تطوير البرامج (SDK) من جهة العميل
تأمين طلبات خدمة الويب من جهة العميل
اقتراحات إضافية للمواقع الإلكترونية أو التطبيقات من جهة العميل التي تستخدم واجهات برمجة تطبيقات الويب الثابتة
اقتراحات إضافية للتطبيقات من جهة الخادم التي تستخدم خدمات الويب
حماية مفاتيح واجهة برمجة التطبيقات لخدمات الويب
استخدام OAuth للتطبيقات من جهة الخادم
في حال فرض قيود على مفتاح واجهة برمجة تطبيقات قيد الاستخدام أو تدويره
قبل تغيير مفتاح واجهة برمجة التطبيقات، تحقَّق من استخدام مفتاح واجهة برمجة التطبيقات هذه الخطوة مهمة بشكل خاص إذا كنت تضيف قيودًا على مفتاح مستخدَم حاليًا في تطبيق إنتاج.
بعد تغيير المفتاح، عليك تعديل جميع تطبيقاتك باستخدام مفاتيح واجهة برمجة التطبيقات الجديدة، حسب الحاجة.
إذا لم يتم اختراق مفتاح واجهة برمجة التطبيقات ولم يتم إساءة استخدامه بشكل نشط، يمكنك نقل تطبيقاتك إلى عدة مفاتيح جديدة لواجهة برمجة التطبيقات بالوتيرة التي تناسبك، مع ترك مفتاح واجهة برمجة التطبيقات الأصلي بدون تغيير إلى أن تلاحظ نوعًا واحدًا فقط من الزيارات، ويمكن فرض قيود على مفتاح واجهة برمجة التطبيقات بأمان باستخدام نوع واحد من قيود التطبيقات بدون التسبب في انقطاعات غير مقصودة في الخدمة.
لمزيد من التعليمات، يُرجى الاطّلاع على مقالة نقل البيانات إلى مفاتيح متعددة لواجهة برمجة التطبيقات.
يمكنك مراقبة الاستخدام بمرور الوقت ومعرفة متى تم نقل واجهات برمجة تطبيقات وأنواع أنظمة أساسية ونطاقات معيّنة من مفتاح واجهة برمجة التطبيقات القديم قبل اختيار حظر المفتاح القديم أو حذفه. لمزيد من المعلومات، يُرجى الاطّلاع على إعداد التقارير والمراقبة والمقاييس.
إذا تم اختراق مفتاح واجهة برمجة التطبيقات، عليك اتخاذ إجراءات سريعة لتأمينه وإيقاف إساءة الاستخدام. في تطبيقات Android وتطبيق iOS، لا يتم استبدال المفاتيح إلا بعد أن يحدّث العملاء تطبيقاتهم. يُعدّ تحديث المفاتيح أو استبدالها في صفحات الويب أو في التطبيقات من جهة الخادم أكثر سهولة، ولكن قد يتطلب ذلك تخطيطًا دقيقًا وعملاً سريعًا.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التعامل مع الاستخدام غير المصرَّح به لمفتاح واجهة برمجة التطبيقات.
مزيد من المعلومات
القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات
تقييد مفاتيح واجهة برمجة التطبيقات
من أفضل الممارسات أن تفرض دائمًا قيودًا على مفاتيح واجهة برمجة التطبيقات باستخدام نوع واحد من قيود التطبيقات وقيد واحد أو أكثر من قيود واجهة برمجة التطبيقات. للاطّلاع على القيود المقترَحة حسب واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) أو خدمة JavaScript، يُرجى مراجعة القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات أدناه.
قيود التطبيقات يمكنك حصر استخدام مفتاح واجهة برمجة التطبيقات على منصات معيّنة: تطبيقات Android أو iOS، أو مواقع إلكترونية معيّنة لتطبيقات من جهة العميل، أو عناوين IP معيّنة أو شبكات فرعية بتنسيق CIDR للتطبيقات من جهة الخادم التي تُصدر طلبات بيانات من واجهة برمجة التطبيقات REST لخدمات الويب.
يمكنك فرض قيود على مفتاح من خلال إضافة قيد واحد أو أكثر من قيود التطبيقات للأنواع التي تريد السماح بها، وبعد ذلك، لن يُسمح إلا بالطلبات الواردة من هذه المصادر.
قيود واجهة برمجة التطبيقات: يمكنك فرض قيود على واجهات برمجة التطبيقات أو حزم تطوير البرامج (SDK) أو الخدمات التي يمكن استخدام مفتاح واجهة برمجة التطبيقات فيها على "منصة خرائط Google". تسمح قيود واجهة برمجة التطبيقات فقط بالطلبات إلى واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) التي تحدّدها. بالنسبة إلى أي مفتاح واجهة برمجة تطبيقات معيّن، يمكنك تحديد أكبر عدد ممكن من قيود واجهة برمجة التطبيقات حسب الحاجة. تتضمّن قائمة واجهات برمجة التطبيقات المتاحة جميع واجهات برمجة التطبيقات المفعَّلة في مشروع معيّن.
ضبط قيود على التطبيقات لمفتاح واجهة برمجة تطبيقات
افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.
اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حظره.
في صفحة تعديل مفتاح واجهة برمجة التطبيقات، ضِمن قيود المفتاح، اختَر ضبط قيد على التطبيق.

اختَر أحد أنواع القيود وقدِّم المعلومات المطلوبة باتّباع قائمة القيود.
نوع الحظر الوصف المواقع الإلكترونية حدِّد موقعًا إلكترونيًا واحدًا أو أكثر من المواقع الإلكترونية المُحيلة. - مخطّطات معرّف الموارد المنتظم (URI) للمُحيل المتوافقة عالميًا هي
httpsوhttp. لا نضمن عمل المخططات الأخرى بشكل صحيح، لأنّ متصفحات الويب الحديثة لن ترسل عنوان `Referer` في الطلبات الصادرة لأسباب تتعلق بالخصوصية. - يجب دائمًا تقديم سلسلة المُحيل الكاملة، بما في ذلك مخطّط البروتوكول واسم المضيف والمنفذ الاختياري (مثل
https://google.com). - يمكنك استخدام أحرف البدل للسماح بجميع النطاقات الفرعية. على سبيل المثال، يقبل
https://*.google.comجميع المواقع الإلكترونية التي تنتهي بـ.google.com. - يُرجى توخي الحذر عند السماح بالمُحيلين الذين يستخدمون المسار الكامل، مثل
https://google.com/some/path، لأنّ معظم متصفّحات الويب ستزيل المسار من الطلبات المتعدّدة المصادر لأسباب تتعلق بالخصوصية.
عناوين IP حدِّد عنوانًا واحدًا أو أكثر من عناوين IPv4 أو IPv6 أو الشبكات الفرعية باستخدام تدوين CIDR. يجب أن تتطابق عناوين IP مع عنوان المصدر الذي ترصده خوادم "منصة خرائط Google". إذا كنت تستخدم ترجمة عنوان الشبكة (NAT)، يتوافق هذا العنوان عادةً مع عنوان IP العام لجهازك. تطبيقات Android أضِف اسم حزمة Android (من ملف
AndroidManifest.xml) والملف المرجعي لشهادة توقيع SHA-1 لكل تطبيق Android تريد منحه الإذن.- اختَر تطبيقات Android.
- انقر على إضافة.
- أدخِل اسم الحزمة والملف المرجعي لشهادة SHA-1. على سبيل المثال:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- انقر على حفظ.
هناك نوعان من الشهادات:
- شهادة تصحيح الأخطاء: لا تستخدِم هذا النوع من الشهادات إلا مع التطبيقات التي تختبرها والرموز البرمجية الأخرى غير المخصّصة للإنتاج. لا تحاول نشر تطبيق موقَّع بشهادة تصحيح الأخطاء. تنشئ أدوات حزمة تطوير البرامج (SDK) لنظام التشغيل Android هذه الشهادة تلقائيًا عند تشغيل إصدار مخصص لتصحيح الأخطاء.
- شهادة الإصدار: استخدِم هذه الشهادة عندما تكون مستعدًا لإصدار تطبيقك في متجر تطبيقات. تُنشئ أدوات حزمة تطوير البرامج (SDK) لنظام التشغيل Android هذه الشهادة عند تشغيل بنية الإصدار.
لمزيد من المعلومات حول توقيع تطبيقات Android وشهاداتها، يُرجى الاطّلاع على دليل توقيع تطبيقك.
إذا كنت تستخدم ميزة توقيع التطبيق من Play، يمكنك الاطّلاع على مقالة التعامل مع موفّري واجهات برمجة التطبيقات لمعرفة كيفية الحصول على الملف المرجعي لشهادة التوقيع. إذا كنت تدير مفتاح التوقيع الخاص بك، يُرجى الاطّلاع على التوقيع الذاتي لتطبيقك أو الرجوع إلى التعليمات الخاصة ببيئة الإصدار.
تطبيقات iOS أضِف معرّف الحزمة لكل تطبيق iOS تريد منحه الإذن.
- اختَر تطبيقات iOS.
- انقر على إضافة.
- أضِف معرّف الحزمة لقبول الطلبات من تطبيق iOS الذي يحمل هذا المعرّف.
- انقر على حفظ.
للحصول على اقتراحات بشأن قيود التطبيقات، يُرجى الاطّلاع على قيود التطبيقات المقترَحة.
- مخطّطات معرّف الموارد المنتظم (URI) للمُحيل المتوافقة عالميًا هي
انقر على حفظ.
ضبط قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات
افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.
اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حظره.
في صفحة تعديل مفتاح واجهة برمجة التطبيقات، ضمن قيود واجهة برمجة التطبيقات:
انقر على تقييد المفتاح.
افتح اختيار واجهات برمجة التطبيقات واختَر واجهات برمجة التطبيقات أو حِزم تطوير البرامج (SDK) التي تريد أن يصل إليها تطبيقك باستخدام مفتاح واجهة برمجة التطبيقات.
إذا لم تكن واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) مُدرَجة، عليك تفعيلها. لمعرفة التفاصيل، يُرجى الاطّلاع على لتفعيل واجهة برمجة تطبيقات واحدة أو أكثر أو حِزم تطوير البرامج (SDK).

انقر على حفظ.
يصبح القيد جزءًا من تعريف مفتاح واجهة برمجة التطبيقات بعد هذه الخطوة. تأكَّد من تقديم التفاصيل المناسبة واختَر حفظ لحفظ قيود مفتاح واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على دليل الحصول على مفتاح واجهة برمجة التطبيقات في مستندات واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) المحدّدة التي تهمّك.
للاطّلاع على القيود المقترَحة على واجهة برمجة التطبيقات، يُرجى مراجعة القيود المقترَحة على واجهة برمجة التطبيقات.
التحقّق من استخدام مفتاح واجهة برمجة التطبيقات
إذا كنت تفرض قيودًا على مفاتيح واجهة برمجة التطبيقات بعد إنشائها، أو إذا أردت الاطّلاع على واجهات برمجة التطبيقات التي يستخدمها مفتاح معيّن لفرض قيود عليها، عليك التحقّق من استخدام مفتاح واجهة برمجة التطبيقات. توضّح لك هذه الخطوات الخدمات وطُرق واجهة برمجة التطبيقات التي يتم استخدام مفتاح واجهة برمجة التطبيقات فيها. إذا لاحظت أي استخدام يتجاوز خدمات "منصة خرائط Google"، عليك التحقيق في الأمر لتحديد ما إذا كنت بحاجة إلى إضافة المزيد من القيود لتجنُّب الاستخدام غير المرغوب فيه. يمكنك استخدام "مستكشف المقاييس" في Google Cloud Console ضمن "منصة خرائط Google" للمساعدة في تحديد القيود التي يجب تطبيقها على مفتاح واجهة برمجة التطبيقات، سواء كانت قيودًا على واجهة برمجة التطبيقات أو على التطبيق:
تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات
اختيار النوع الصحيح لقيود التطبيق باستخدام "مستكشف المقاييس"
تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات
تتيح لك تقارير المقاييس التالية تحديد واجهات برمجة التطبيقات التي تستخدم مفاتيح واجهة برمجة التطبيقات الخاصة بك. استخدِم هذه التقارير لإجراء ما يلي:
- الاطّلاع على كيفية استخدام مفاتيح واجهة برمجة التطبيقات
- رصد الاستخدام غير المتوقّع
- المساعدة في التحقّق مما إذا كان من الآمن حذف مفتاح غير مستخدَم للحصول على معلومات حول حذف مفتاح واجهة برمجة التطبيقات، يُرجى الاطّلاع على حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة.
عند تطبيق قيود واجهة برمجة التطبيقات، استخدِم هذه التقارير لإنشاء قائمة بواجهات برمجة التطبيقات التي تريد السماح بها، أو للتحقّق من صحة الاقتراحات التي يتم إنشاؤها تلقائيًا بشأن القيود المفروضة على مفتاح واجهة برمجة التطبيقات. لمزيد من المعلومات حول القيود المقترَحة، يُرجى الاطّلاع على مقالة تطبيق القيود المقترَحة. لمزيد من المعلومات حول استخدام "مستكشف المقاييس"، يُرجى الاطّلاع على إنشاء رسوم بيانية باستخدام "مستكشف المقاييس".
انتقِل إلى مستكشف المقاييس في وحدة تحكّم Google Cloud
سجِّل الدخول واختَر المشروع الذي تريد التحقّق من مفاتيح واجهة برمجة التطبيقات الخاصة به.
انتقِل إلى صفحة "مستكشف المقاييس" لنوع واجهة برمجة التطبيقات:
بالنسبة إلى مفاتيح واجهة برمجة التطبيقات التي تستخدم أي واجهة برمجة تطبيقات باستثناء Maps Embed API: انتقِل إلى صفحة مستكشف المقاييس.
بالنسبة إلى مفاتيح واجهة برمجة التطبيقات التي تستخدم Maps Embed API: انتقِل إلى مستكشف المقاييس.
افحص كل مفتاح واجهة برمجة تطبيقات:
انقر على إضافة فلتر.
انقر على التصنيف
credential_id.اختَر القيمة المقابلة للمفتاح الذي تريد فحصه.
يُرجى ملاحظة واجهات برمجة التطبيقات التي يتم استخدام مفتاح واجهة برمجة التطبيقات هذا من أجلها، والتأكّد من أنّ الاستخدام متوقَّع.
بعد الانتهاء، انقر على إزالة الفلتر في نهاية سطر الفلتر النشط لحذف الفلتر الإضافي.
كرِّر هذه الخطوات مع أي مفاتيح متبقية.
احصر مفاتيح واجهة برمجة التطبيقات على واجهات برمجة التطبيقات المستخدَمة فقط.
إذا رصدت استخدامًا غير مصرَّح به، يُرجى الاطّلاع على التعامل مع الاستخدام غير المصرَّح به لمفتاح واجهة برمجة التطبيقات.
اختيار النوع الصحيح لقيود التطبيق باستخدام "مستكشف المقاييس"
بعد التحقّق من مفتاح واجهة برمجة التطبيقات واتّخاذ أي إجراءات ضرورية للتأكّد من أنّه يُستخدم فقط لخدمات "منصة خرائط Google" التي يستخدمها، عليك أيضًا التحقّق من أنّ مفتاح واجهة برمجة التطبيقات يتضمّن قيود التطبيق الصحيحة.
إذا كان مفتاح واجهة برمجة التطبيقات يتضمّن قيودًا مقترَحة، طبِّقها. لمزيد من المعلومات، يُرجى الاطّلاع على تطبيق القيود المقترَحة على مفاتيح واجهة برمجة التطبيقات.
إذا لم يتضمّن مفتاح واجهة برمجة التطبيقات اقتراحات بشأن القيود، حدِّد نوع
قيود التطبيق التي يجب تطبيقها، استنادًا إلى platform_type التي تم الإبلاغ عنها باستخدام
"مستكشف المقاييس":
انتقِل إلى مستكشف المقاييس في وحدة تحكّم Google Cloud
سجِّل الدخول واختَر المشروع الذي يتضمّن واجهات برمجة التطبيقات التي تريد التحقّق منها.
انتقِل إلى صفحة "مستكشف المقاييس" التالية: مستكشف المقاييس.
افحص كل مفتاح واجهة برمجة تطبيقات:
انقر على إضافة فلتر.
انقر على التصنيف
credential_id.اختَر القيمة المقابلة للمفتاح الذي تريد فحصه.
بعد الانتهاء، انقر على إزالة الفلتر في نهاية سطر الفلتر النشط لحذف الفلتر الإضافي.
كرِّر هذه الخطوات مع أي مفاتيح متبقية.
بعد الحصول على نوع المنصة لمفاتيح واجهة برمجة التطبيقات، طبِّق قيود التطبيق على
platform_type:
PLATFORM_TYPE_JS: لتطبيق قيود المواقع الإلكترونية على المفتاح
PLATFORM_TYPE_ANDROID: لتطبيق قيود تطبيقات Android على المفتاح
PLATFORM_TYPE_IOS: لتطبيق قيود تطبيقات iOS على المفتاحPLATFORM_TYPE_WEBSERVICE: قد تحتاج إلى الاعتماد على القيود المفروضة على عنوان IP في المفتاح لتقييده بشكل صحيح.للاطّلاع على الاقتراحات المتعلّقة بواجهتَي Maps Static API وStreet View Static API، يُرجى مراجعة مقالة حماية استخدام واجهة برمجة تطبيقات الويب الثابتة.
للاطّلاع على الاقتراحات المتعلّقة بواجهة برمجة التطبيقات Maps Embed API، يُرجى مراجعة المواقع الإلكترونية التي تستخدم Maps Embed API.
يستخدم مفتاح واجهة برمجة التطبيقات أنواعًا متعددة من المنصات: لا يمكن تأمين زياراتك بشكل صحيح باستخدام مفتاح واحد فقط لواجهة برمجة التطبيقات. يجب نقل البيانات إلى مفاتيح متعددة لواجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الانتقال إلى استخدام مفاتيح متعددة لواجهة برمجة التطبيقات.
استخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق
تحدّ هذه الممارسة من نطاق كل مفتاح. إذا تم اختراق مفتاح واحد، يمكنك حذفه أو تدويره بدون الحاجة إلى تعديل مفاتيح واجهة برمجة التطبيقات الأخرى. يمكنك إنشاء ما يصل إلى 300 مفتاح واجهة برمجة تطبيقات لكل مشروع. لمزيد من المعلومات، يُرجى الاطّلاع على الحدود القصوى لمفاتيح واجهة برمجة التطبيقات.
على الرغم من أنّ استخدام مفتاح واحد لواجهة برمجة التطبيقات لكل تطبيق هو الخيار الأفضل لأغراض الأمان، يمكنك استخدام مفاتيح مقيّدة في تطبيقات متعددة طالما أنّها تستخدم النوع نفسه من قيود التطبيقات.
تطبيق القيود المقترَحة على مفتاح واجهة برمجة التطبيقات
بالنسبة إلى بعض مالكي المشاريع والمحرِّرين ومشرفي مفاتيح واجهة برمجة التطبيقات، تقترح وحدة تحكّم Google Cloud قيودًا معيّنة على مفاتيح واجهة برمجة التطبيقات غير المقيّدة استنادًا إلى استخدامهم لمنصة "خرائط Google" ونشاطهم عليها.
إذا كانت الاقتراحات متاحة، ستظهر كخيارات معبأة مسبقًا في صفحة بيانات اعتماد "منصة خرائط Google".
واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) في "منصة خرائط Google" المتوافقة مع الاقتراحات المبرمَجة
Maps JavaScript API، بما في ذلك خدمة الاتجاهات (القديمة) وخدمة مصفوفة المسافات (القديمة) وخدمة الارتفاع وخدمة الترميز الجغرافي وفئة المكان وأداة الإكمال التلقائي للأماكن (الجديدة) وواجهة برمجة تطبيقات بيانات الإكمال التلقائي للأماكن ومكتبة الأماكن وخدمة الأماكن وأداة الإكمال التلقائي للأماكن وحزمة أدوات "خرائط Google" الجاهزة للأماكن
Maps Static API وStreet View Static API
Maps Embed API
"حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android" و"حزمة تطوير البرامج للتنقّل على أجهزة Android" و"حزمة تطوير برامج الأماكن لأجهزة Android" و"حزمة أدوات خرائط Google الجاهزة للأماكن" على Android
حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS، وحزمة تطوير البرامج للتنقّل على أجهزة iOS، وحزمة تطوير برامج الأماكن لأجهزة iOS، وحزمة تطوير البرامج Swift للأماكن على أجهزة iOS، وحزمة أدوات "خرائط Google" الجاهزة للأماكن على أجهزة iOS
أسباب عدم ظهور اقتراح أو ظهور اقتراح غير مكتمل
أسباب عدم ظهور أي اقتراح
أنت تستخدم (أيضًا) مفتاح واجهة برمجة التطبيقات في خدمات أخرى غير خدمات "منصة خرائط Google"، أو في خدمات "منصة خرائط Google" التي لا تتيح الاقتراحات التلقائية بعد.
إذا رأيت استخدامًا في خدمات أخرى، لا تطبّق الاقتراح بدون تنفيذ ما يلي أولاً:
تحقَّق من أنّ استخدام واجهة برمجة التطبيقات الذي يظهر لك في "مستكشف المقاييس" ضمن Google Cloud Console مشروع.
أضِف الخدمات غير المتوفّرة يدويًا إلى قائمة واجهات برمجة التطبيقات التي سيتم السماح بها.
أضِف يدويًا أي قيود مفقودة على التطبيقات للخدمات التي تمت إضافتها إلى قائمة واجهة برمجة التطبيقات. إذا كان مفتاحك الآخر يتطلّب نوعًا مختلفًا من قيود التطبيقات، يُرجى الاطّلاع على نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة.
عدم استخدام مفتاح واجهة برمجة التطبيقات في حِزم تطوير البرامج (SDK) أو واجهات برمجة التطبيقات من جهة العميل
إذا كنت تستخدم مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني منخفض الاستخدام لم يتم استخدامه خلال آخر 60 يومًا.
لقد أنشأت مفتاحًا جديدًا مؤخرًا، أو نشرت مؤخرًا مفتاحًا حاليًا في تطبيق جديد. في هذه الحالة، يُرجى الانتظار بضعة أيام أخرى حتى يتم تحديث الاقتراحات.
أنت تستخدم مفتاح واجهة برمجة التطبيقات في تطبيقات متعددة تتطلب أنواعًا متعارضة من قيود التطبيقات، أو أنك تستخدم مفتاح واجهة برمجة التطبيقات نفسه في عدد كبير جدًا من التطبيقات أو المواقع الإلكترونية المختلفة. في كلتا الحالتين، من بين أفضل الممارسات، عليك نقل البيانات إلى مفاتيح متعددة. لمزيد من التفاصيل، يُرجى الاطّلاع على المقالة نقل البيانات إلى مفاتيح متعددة لواجهة برمجة التطبيقات.
أسباب ظهور اقتراح غير مكتمل
إذا كنت تستخدم مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني منخفض الاستخدام لم يتم استخدامه خلال آخر 60 يومًا.
لقد بدأت مؤخرًا في استخدام مفتاح حالي في واجهة برمجة تطبيقات أو خدمة جديدة، ولم يعالج بعد مسار اقتراح حظر مفتاح واجهة برمجة التطبيقات التلقائي مقاييس الاستخدام المحدَّثة. قد يستغرق نشر مقاييس الاستخدام بضعة أيام.
إذا رأيت استخدامًا في خدمات أخرى، لا تطبّق الاقتراح بدون إجراء ما يلي أولاً:
تحقَّق من أنّ استخدام واجهة برمجة التطبيقات الذي يظهر لك في "مستكشف المقاييس" ضمن Google Cloud Console مشروع.
أضِف الخدمات غير المتوفّرة يدويًا إلى قائمة واجهات برمجة التطبيقات التي سيتم السماح بها.
أضِف يدويًا أي قيود مفقودة على التطبيقات للخدمات التي تمت إضافتها إلى قائمة واجهة برمجة التطبيقات. إذا كان مفتاحك الآخر يتطلّب نوعًا مختلفًا من قيود التطبيقات، يُرجى الاطّلاع على نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة.
ما لم تكن بحاجة بشكل عاجل إلى تقييد مفتاح، على سبيل المثال، بسبب استخدام غير مصرَّح به، يمكنك أيضًا الانتظار لمدة يوم أو يومَين حتى تظهر الاقتراحات.
الأسباب المحتملة لظهور اقتراحات غير مرئية في الرسوم البيانية
أرسل تطبيقك أو موقعك الإلكتروني عددًا قليلاً جدًا من الزيارات. في هذه الحالة، يمكنك التبديل من عرض الرسم البياني إلى عرض الجدول أو كليهما، لأنّ الاستخدام يظل مرئيًا في وسيلة الإيضاح. لمزيد من المعلومات، يُرجى الاطّلاع على تبديل وسائل الإيضاح الكاملة للرسم البياني.
تأتي زياراتك من Maps Embed API. للحصول على التعليمات، يُرجى الاطّلاع على مقالة تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات.
الزيارات الواردة من التطبيق أو الموقع الإلكتروني خارج النطاق الزمني المتاح في مستكشف المقاييس في Google Cloud Console.
لتطبيق القيود المقترَحة
افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.
انقر على تطبيق القيود المقترَحة، إذا كان هذا الخيار متاحًا.

انقر على التحقّق من استخدام واجهة برمجة التطبيقات للتأكّد من الخدمات التي يتم استخدام مفتاح واجهة برمجة التطبيقات فيها. إذا ظهرت لك خدمات أخرى غير خدمات "منصة خرائط Google"، يُرجى إيقاف العملية مؤقتًا لمراجعة خطوات الاقتراح أعلاه يدويًا. اطّلِع على خطوات تحديد المشاكل وحلّها في بداية قسم تطبيق القيود المقترَحة على مفتاح واجهة برمجة التطبيقات.
يُرجى التحقّق من أنّ القيود التي تمت تعبئتها مسبقًا تتطابق مع المواقع الإلكترونية والتطبيقات التي من المتوقّع استخدام مفتاح واجهة برمجة التطبيقات فيها.
أفضل الممارسات: عليك توثيق وإزالة أي قيود على التطبيقات أو واجهات برمجة التطبيقات غير المرتبطة بخدماتك. إذا حدث عطل بسبب تبعية غير متوقعة، يمكنك إعادة إضافة التطبيقات أو واجهات برمجة التطبيقات المطلوبة.
إذا لاحظت أنّ هناك تطبيقًا أو موقعًا إلكترونيًا أو واجهة برمجة تطبيقات غير مضمّنة في الاقتراح، يمكنك إضافتها يدويًا أو الانتظار بضعة أيام ليتم تعديل الاقتراح.
إذا كنت بحاجة إلى مزيد من المساعدة بشأن الاقتراح المقترَح، يُرجى التواصل مع فريق الدعم.
اختَر تطبيق.
ما يجب فعله إذا تم رفض طلبك بعد تطبيق اقتراح
إذا لاحظت أنّه يتم رفض تطبيق أو موقع إلكتروني بعد تطبيق قيد، ابحث عن قيد التطبيق الذي تحتاج إلى إضافته في رسالة الخطأ الخاصة بالردّ من واجهة برمجة التطبيقات.
حِزم تطوير البرامج (SDK) وواجهات برمجة التطبيقات من جهة العميل
- التطبيقات المستندة إلى المتصفّح وWebView
عادةً ما تحجب المتصفّحات الحديثة عنوان
Refererفي طلبات المصادر المتعددة لأسباب تتعلّق بالخصوصية، وغالبًا ما يتم تجريده إلىOrigin. ومع ذلك، يعتمد السلوك الدقيق علىreferrer-policyالمطبَّقة في الموقع الإلكتروني المضيف، وقد يختلف أيضًا استنادًا إلى متصفّح المستخدم وإصداره.عندما تستخدم تطبيقات الويب مخطّطات URI غير واضحة أو محلية لتحميل المحتوى، سيؤدي ذلك عادةً إلى إخفاء المتصفّح أو WebView الذي يعرض المحتوى لرأس
Refererبالكامل من أي مكالمات صادرة، ما قد يؤدي إلى تعذُّر تنفيذ الطلبات باستخدام مفاتيح واجهة برمجة التطبيقات التي تفرض قيودًا على المواقع الإلكترونية.لمزيد من الإرشادات، يُرجى الاطّلاع على استضافة التطبيقات المستندة إلى المتصفّح على خادم.
تعليمات تحديد المشاكل وحلّها للتطبيقات المستندة إلى المتصفّح وWebView:
بالنسبة إلى Maps JavaScript API، يمكنك الاطّلاع على وحدة تحكّم تصحيح أخطاء المتصفّح للحصول على تفاصيل حول كيفية تفويض تطبيقك.
مخطّطات URI غير المألوفة متوافقة جزئيًا. إذا كانت أجزاء من تطبيقك لا تعمل مع مخطّط URI غير مألوف، حتى بعد السماح بالمُحيل المطلوب، ستحتاج على الأرجح إلى استضافة تطبيقك عن بُعد على خادم وتحميله عبر HTTPS (أو HTTP).
إذا كنت بحاجة إلى مساعدة بشأن مخطّطات URI غير المألوفة، يُرجى التواصل مع فريق الدعم.
ستعرض واجهات برمجة التطبيقات الأخرى في "منصة خرائط Google" بشكل عام المُحيل الذي تحتاج إلى تفويضه في استجابة خطأ واجهة برمجة التطبيقات، بافتراض أنّ العميل أرسل هذه المعلومات مع الطلب المرفوض.
لا تتوافق مخططات معرّفات الموارد المنتظمة (URI) غير المألوفة.
- تطبيقات Android
استخدام أداة Android Debug Bridge (adb) أو Logcat
- تطبيقات iOS
يُرجى الاطّلاع على عرض الرسائل المسجّلة.
التطبيقات التي ترسل الطلبات إلى خدمات الويب مباشرةً
بالنسبة إلى التطبيقات التي تستدعي واجهة برمجة التطبيقات REST API المستندة إلى HTTPS في "منصة خرائط Google" أو نقاط نهاية gRPC مباشرةً بدون حزمة تطوير البرامج (SDK) من جهة العميل في "منصة خرائط Google"، يُرجى الاطّلاع على ما يلي:
- تطبيقات Android وiOS
إذا كان تطبيق Android أو iOS يستدعي خدمات "منصة خرائط Google" مباشرةً بدون استخدام أي من حزم تطوير البرامج (SDK) المتاحة لعملاء "منصة خرائط Google"، يُرجى الاطّلاع على تطبيقات Android وتطبيقات iOS للحصول على مزيد من النصائح حول تحديد المشاكل وحلّها، وتأمين طلبات خدمات الويب من جهة العميل للاطّلاع على أفضل ممارسات الأمان الحالية لحالات استخدام الأجهزة الجوّالة.
إذا كان تطبيقك يسجّل استجابات الأخطاء في واجهة برمجة التطبيقات في "منصة خرائط Google"، قد تكون التعليمات أعلاه لحِزم تطوير البرامج (SDK) من جهة العميل مفيدة أيضًا في تحديد مشاكل المصادقة وحلّها.
- التطبيقات من جهة الخادم
إنّ التطبيقات من جهة الخادم التي تعتمد على مفاتيح واجهة برمجة التطبيقات تكون محمية بشكل أفضل من خلال القيود المفروضة على عناوين IP. إذا فرضت قيودًا على عنوان IP لمفتاحك، وكانت سجلّات الخدمة تسجّل ردودًا تتضمّن أخطاءً في واجهة برمجة التطبيقات لمنصة "خرائط Google"، يُرجى مراجعة سجلّات النظام للحصول على مزيد من المعلومات. سيتضمّن ردّ الخطأ عنوان IP الخاص بالخادم الذي تحتاج إلى تفويضه.
- التطبيقات المستندة إلى المتصفّح أو WebView
على الرغم من أنّ واجهتَي Maps Static API وStreet View Static API، وهما من واجهات برمجة التطبيقات الأحدث في "منصة خرائط Google"، ستتيحان أيضًا استخدام القيود على المُحيل، يُرجى العِلم أنّ متصفّحات الويب أو طرق عرض الويب ستقيّد على الأرجح عنوان
RefererإلىOriginللطلبات المتعدّدة المصادر، ومن المرجّح أن تتجاهل إرساله تمامًا، على سبيل المثال، للموارد التي يتم الوصول إليها محليًا أو للموارد التي يتم عرضها عبر بروتوكولات أخرى غير HTTP أو HTTPS.إذا لم تتمكّن من استخدام Maps JavaScript API في تطبيقك، ولم تنجح قيود المواقع الإلكترونية، يمكنك الاطّلاع على تأمين طلبات خدمات الويب من جهة العميل لمعرفة كيفية إصدار طلبات خدمات الويب في "منصة خرائط Google" بأمان من داخل تطبيقك من جهة العميل المستنِد إلى المتصفّح.
نصائح للتحقّق من قيود واجهة برمجة التطبيقات
للاطّلاع على القيود المطلوبة على واجهة برمجة التطبيقات، يُرجى مراجعة مقالة تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات.
إذا لم تتمكّن من تحديد القيود التي يجب تطبيقها:
- توثيق القيود الحالية للرجوع إليها في المستقبل.
- أزِلها مؤقتًا أثناء التحقيق في المشكلة. يمكنك الاطّلاع على استخدامك بمرور الوقت باتّباع الخطوات الواردة في مقالة التحقّق من استخدام مفتاح واجهة برمجة التطبيقات.
- يُرجى التواصل مع فريق الدعم إذا لزم الأمر.
حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة
قبل حذف مفتاح واجهة برمجة التطبيقات، تأكَّد من أنّه غير مستخدَم في مرحلة الإنتاج. إذا لم تكن هناك زيارات ناجحة، من المرجّح أن يكون حذف المفتاح آمنًا. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التحقّق من استخدام مفتاح واجهة برمجة التطبيقات.
لحذف مفتاح واجهة برمجة تطبيقات، اتّبِع الخطوات التالية:
افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.
اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حذفه.
انقر على الزر حذف بالقرب من أعلى الصفحة.
في صفحة حذف بيانات الاعتماد، انقر على حذف.
يستغرق حذف مفتاح واجهة برمجة التطبيقات بضع دقائق حتى يتم نشره. بعد اكتمال عملية النشر، يتم رفض أي زيارات تستخدم مفتاح واجهة برمجة التطبيقات المحذوف.
يُرجى توخّي الحذر عند تدوير مفاتيح واجهة برمجة التطبيقات
يؤدي تدوير مفتاح واجهة برمجة التطبيقات إلى إنشاء مفتاح جديد يتضمّن جميع قيود المفتاح القديم. خلال هذه الفترة الزمنية، يتم قبول كل من المفتاح القديم والجديد، ما يمنحك فرصة لنقل تطبيقاتك لاستخدام المفتاح الجديد.
قبل تدوير مفتاح واجهة برمجة التطبيقات:
حاوِل أولاً تقييد مفاتيح واجهة برمجة التطبيقات على النحو الموضّح في تقييد مفاتيح واجهة برمجة التطبيقات.
إذا لم يكن من الممكن تقييد مفتاح واجهة برمجة التطبيقات بسبب تعارض أنواع قيود التطبيق، يمكنك نقل البيانات إلى عدة مفاتيح جديدة (مقيّدة) كما هو موضّح في نقل البيانات إلى عدة مفاتيح لواجهة برمجة التطبيقات. يتيح لك نقل البيانات التحكّم في عملية النقل والجدول الزمني لطرح مفاتيح واجهة برمجة التطبيقات الجديدة.
إذا لم تكن الاقتراحات السابقة ممكنة، وكان عليك تدوير مفتاح واجهة برمجة التطبيقات لمنع الاستخدام غير المصرَّح به، اتّبِع الخطوات التالية:
افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.
افتح مفتاح واجهة برمجة التطبيقات الذي تريد تدويره.
في أعلى الصفحة، انقر على تدوير المفتاح.
يمكنك تغيير اسم مفتاح واجهة برمجة التطبيقات إذا أردت.
انقر على إنشاء.
يُرجى تعديل تطبيقاتك لاستخدام المفتاح الجديد.
بعد تحديث تطبيقاتك لاستخدام المفتاح الجديد، احذف المفتاح القديم بالنقر على الزر حذف المفتاح السابق ضمن قسم "المفتاح السابق" في صفحة مفتاح واجهة برمجة التطبيقات الجديد.
نقل البيانات إلى مفاتيح متعددة لواجهة برمجة التطبيقات
للانتقال من استخدام مفتاح واحد لواجهة برمجة التطبيقات لعدة تطبيقات إلى مفتاح واحد فريد لواجهة برمجة التطبيقات لكل تطبيق، اتّبِع الخطوات التالية:
تحديد التطبيقات التي تحتاج إلى مفاتيح جديدة:
- تطبيقات الويب هي الأسهل في التحديث، لأنك تتحكم في كل التعليمات البرمجية. خطِّط لتحديث جميع مفاتيح تطبيقاتك المستندة إلى الويب.
- أما تطبيقات الأجهزة الجوّالة، فالأمر أصعب بكثير، لأنّ على عملائك تحديث تطبيقاتهم قبل أن يتمكّنوا من استخدام المفاتيح الجديدة.
إنشاء المفاتيح الجديدة وتقييدها: أضِف قيدًا على التطبيق وقيدًا واحدًا على الأقل على واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على أفضل الممارسات المقترَحة.
إضافة المفاتيح الجديدة إلى تطبيقاتك: بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، قد تستغرق هذه العملية بضعة أشهر إلى أن يحدّث جميع المستخدمين تطبيقاتهم إلى أحدث إصدار يتضمّن مفتاح واجهة برمجة التطبيقات الجديد.
تقسيم الاستخدام من جهة العميل ومن جهة الخادم إلى مشاريع منفصلة
إذا كنت بحاجة إلى طلب خدمات "منصة خرائط Google" من تطبيقات من جهة الخادم ومن تطبيقات من جهة العميل مباشرةً تعمل على أجهزة المستخدمين النهائيين، تنصح Google بتقسيم استخدامك بين مشروعَين منفصلَين.
يتيح لك هذا النهج تطبيق حدود حصص مناسبة لكل دقيقة ولكل مستخدم على معظم خدمات "منصة خرائط Google" في مشروعك من جهة العميل، ما يساعد في التأكّد من حصول جميع المستخدمين النهائيين على حصتهم العادلة من الحصة الإجمالية لمشروعك بدون التأثير في بعضهم البعض.
ومع ذلك، بما أنّ قيود الحصة لكل مستخدم تؤثر في كل من التطبيقات من جهة العميل والتطبيقات من جهة الخادم، إذا كنت تحتاج أيضًا إلى معدل نقل بيانات مرتفع للمهام من جهة الخادم، يمكنك إعداد مشروع منفصل لحالة الاستخدام هذه، وضبطه بحد أقصى أعلى للحصة لكل مستخدم أو بدون حد أقصى على الإطلاق.
إيقاف الخدمات غير المستخدَمة
لا تترك الخدمات غير المستخدَمة مفعَّلة في مشروع، لأنّ هذه الممارسة تكون عرضة لإساءة الاستخدام، خاصةً إذا لم تفرض قيودًا على جميع مفاتيح واجهة برمجة التطبيقات العامة. كأفضل ممارسة، لا تفعِّل خدمة في مشروع إلا عندما تحتاج إليها تطبيقاتك.
تؤدي إضافة قيود واجهة برمجة التطبيقات على مفتاح إلى منع استخدامه في الخدمات التي لم يتم السماح له باستخدامها، ولكن لا تنطبق قيود واجهة برمجة التطبيقات إلا على هذا المفتاح المحدّد. يمكنك إيقاف خدمة على مستوى المشروع لمنع الاستخدام غير المصرَّح به للخدمة على أي مفتاح مرتبط بالمشروع.
استخدام حِزم تطوير البرامج (SDK) من جهة العميل
عند استخدام حِزم تطوير البرامج (SDK) المتوفّرة من جهة العميل في "منصة خرائط Google"، سيكون بإمكانك دائمًا تطبيق القيود المناسبة على مفتاح واجهة برمجة التطبيقات لتأمين استخدامك للخدمة.
سيسمح لك استخدام حِزم تطوير البرامج (SDK) من جهة العميل أيضًا باعتماد آليات أمان أكثر تقدّمًا، مثل ميزة "فحص التطبيقات من Firebase" على واجهات برمجة التطبيقات في "منصة خرائط Google" التي تتيح ذلك. لمزيد من التفاصيل، يُرجى الاطّلاع على المقالة استخدام ميزة "فحص التطبيقات" لتأمين مفتاح واجهة برمجة التطبيقات.
إذا لم تكن حزم SDK من جهة العميل متاحة لمنصتك، يُرجى الاطّلاع على تأمين طلبات خدمة الويب من جهة العميل.
لمعرفة مدى توفّر حزم تطوير البرامج (SDK) من جهة العميل في "منصة خرائط Google" لمختلف المنصات، يُرجى الاطّلاع على القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات.
حماية استخدام واجهة برمجة التطبيقات Static Web API
تتشابه واجهات برمجة التطبيقات الثابتة على الويب، مثل Maps Static API وStreet View Static API، مع طلبات البيانات من واجهة برمجة التطبيقات لخدمات الويب.
يمكنك طلب كليهما باستخدام واجهة برمجة تطبيقات REST API تستخدم بروتوكول HTTPS، وعادةً ما يتم إنشاء عنوان URL لطلب بيانات من واجهة برمجة التطبيقات على الخادم. ومع ذلك، بدلاً من عرض استجابة JSON، تنشئ واجهات برمجة التطبيقات الثابتة للويب صورة يمكنك تضمينها في رمز HTML الذي تم إنشاؤه. والأهم من ذلك، أنّ عميل المستخدم النهائي هو الذي يطلب خدمة "منصة خرائط Google" بشكل عام، وليس الخادم.
استخدام توقيع رقمي
كأفضل ممارسة، استخدِم دائمًا التوقيعات الرقمية بالإضافة إلى مفتاح واجهة برمجة التطبيقات. يُرجى أيضًا مراجعة عدد الطلبات غير الموقَّعة التي تريد السماح بها يوميًا وتعديل حصص الطلبات غير الموقَّعة وفقًا لذلك.
لمزيد من التفاصيل حول التوقيعات الرقمية، يُرجى الاطّلاع على دليل التوقيع الرقمي.
حماية مفتاح التوقيع السرّي
لحماية واجهات برمجة التطبيقات الثابتة للويب، لا تضمِّن أسرار توقيع واجهة برمجة التطبيقات مباشرةً في الرمز البرمجي أو في شجرة المصدر، ولا تكشف عنها في التطبيقات من جهة العميل. اتّبِع أفضل الممارسات التالية لحماية مفاتيح التوقيع السرية:
أنشِئ عناوين 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 للمستخدمين غير المصرّح لهم.
النقاط الرئيسية:
أنشئ طلبات "منصة خرائط Google" على الخادم الوكيل. لا تسمح للعملاء بنقل طلبات بيانات من واجهة برمجة التطبيقات عشوائية باستخدام الخادم الوكيل.
أجرِ معالجة لاحقة لردود "منصة خرائط Google" على خادم الوكيل. فلترة البيانات التي لا يحتاجها العميل
لمزيد من المعلومات حول استخدام خادم وكيل، يُرجى الاطّلاع على العيش بالوكالة: استخدام الخوادم الوكيلة مع مكتبات عملاء Google Data API.
تأمين المكالمات المباشرة لخدمات الويب على الأجهزة الجوّالة
إذا لم تتمكّن من إعداد خادم وكيل آمن لتطبيقك من جهة العميل، يمكنك تأمين تطبيقك باتّباع الخطوات التالية:
استخدام عناوين HTTP:
Android: استخدِم عنوانَي HTTP
X-Android-PackageوX-Android-Cert.iOS: استخدِم عنوان HTTP يتضمّن العنصر
X-Ios-Bundle-Identifier.
أضِف قيود التطبيق المقابلة إلى مفتاح Android أو iOS.
قبل التفكير في إصدار طلبات مباشرة من تطبيقك على الأجهزة الجوّالة إلى خدمة ويب REST API في "منصة خرائط Google"، تأكَّد من رفض الطلبات التي تتضمّن معرّفات تطبيقات Android أو iOS غير صحيحة.
إذا كانت قيود تطبيقات Android وiOS غير متاحة على نقطة النهاية التي تم اختبارها، تنصح Google بشدة باستخدام خادم وكيل آمن بين عملاء تطبيقات الجوّال ونقطة نهاية خدمة الويب في "منصة خرائط Google".
نصائح لتطبيقات Android:
قبل دمج تطبيق Android مع خدمات "منصة خرائط Google"، تأكَّد من أنّ معرّف التطبيق (يُعرف أيضًا باسم الحزمة) منسَّق بشكل صحيح. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة ضبط وحدة التطبيق في مستندات 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، إنشاء تطبيقات مختلطة متعددة الأنظمة الأساسية تعمل داخل WebView بسهولة. ومع ذلك، لا نضمن أن تعمل قيود المواقع الإلكترونية لمفتاح واجهة برمجة التطبيقات بشكل صحيح، إلا إذا تم تحميل تطبيق الويب باستخدام HTTP أو HTTPS من موقع إلكتروني تتحكّم فيه وسمحت به.
في كثير من الحالات، لن تعمل المصادقة المستندة إلى المُحيل إذا تم استخدام موارد مجمّعة أو تم تحميلها محليًا من داخل تطبيق مختلط أو تم الوصول إليها باستخدام عنوان URL لملف محلي، لأنّ محرّك المتصفّح الذي يشغّل WebView سيحذف عنوان Referer. لتجنُّب ذلك، استضِف تطبيقات الويب من جهة الخادم وليس من جهة العميل.
بدلاً من ذلك، بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، ننصحك باستخدام حِزم تطوير البرامج (SDK) الأصلية المتاحة لنظامَي التشغيل Android وiOS في "منصة خرائط Google"، بدلاً من استخدام حزمة تطوير برامج (SDK) مستندة إلى الويب.
استخدام ميزة "فحص التطبيقات" لتأمين مفتاح واجهة برمجة التطبيقات
تتيح لك بعض حزم تطوير البرامج (SDK) وواجهات برمجة التطبيقات في "خرائط Google" التكامل مع ميزة "فحص التطبيقات من Firebase". توفّر ميزة "فحص التطبيقات" الحماية للطلبات الواردة من تطبيقك إلى "منصة خرائط Google" من خلال حظر الزيارات التي تأتي من مصادر غير التطبيقات الشرعية. ويتم ذلك من خلال التحقّق من توفّر رمز مميّز من مقدّم خدمة المصادقة. يساعد دمج تطبيقاتك مع ميزة "التحقّق من التطبيق" في الحماية من الطلبات الضارة، وبالتالي لن يتم تحصيل رسوم منك مقابل طلبات البيانات غير المصرّح بها من واجهة برمجة التطبيقات.
تعليمات دمج ميزة "فحص التطبيقات":
- حزمة تطوير برامج الأماكن لأجهزة iOS
- حزمة تطوير برامج الأماكن لأجهزة Android
- Maps JavaScript API
- فئة المكان، Maps JavaScript API
التعامل مع الاستخدام غير المصرّح به لمفتاح واجهة برمجة التطبيقات
إذا رصدت استخدامًا غير مصرَّح به لمفتاح واجهة برمجة التطبيقات، اتّبِع الخطوات التالية لحلّ المشكلة:
تقييد المفاتيح: إذا كنت قد استخدمت المفتاح نفسه في تطبيقات متعددة، عليك الانتقال إلى استخدام مفاتيح متعددة لواجهة برمجة التطبيقات، واستخدام مفاتيح منفصلة لكل تطبيق. لمزيد من التفاصيل، يُرجى الاطّلاع على:
إذا كنت تستخدم حزمة Places SDK أو واجهة برمجة التطبيقات Maps JavaScript API، يمكنك أيضًا استخدام ميزة "فحص التطبيقات" لتأمين مفتاح واجهة برمجة التطبيقات.
لا تستبدِل المفاتيح أو تدوِّرها إلا في حال استيفاء الشروط التالية:
إذا رصدت استخدامًا غير مصرَّح به للمفاتيح التي لا يمكن حظرها أو التي تم حظرها، ولا ينطبق عليها "فحص التطبيقات".
تريد اتخاذ إجراء سريع لتأمين مفتاح واجهة برمجة التطبيقات وإيقاف إساءة الاستخدام، حتى لو كان ذلك سيؤثر في الزيارات الصالحة من تطبيقك.
قبل المتابعة، يُرجى قراءة توخّي الحذر عند تدوير مفاتيح واجهة برمجة التطبيقات.
إذا استمرّت المشاكل أو كنت بحاجة إلى المساعدة، يُرجى التواصل مع فريق الدعم.
القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات
تقترح الأقسام التالية قيودًا مناسبة على التطبيقات وواجهات برمجة التطبيقات لكل واجهة برمجة تطبيقات أو حزمة تطوير برامج (SDK) أو خدمة في "منصة خرائط Google".
القيود المقترَحة على واجهة برمجة التطبيقات
تنطبق الإرشادات التالية بشأن قيود واجهة برمجة التطبيقات على جميع خدمات "منصة خرائط Google":
يجب حصر مفتاح واجهة برمجة التطبيقات على واجهات برمجة التطبيقات التي تستخدمه من أجلها فقط، مع مراعاة الاستثناءات التالية:
إذا كان تطبيقك يستخدم حزمة تطوير البرامج (SDK) للأماكن على Android أو حزمة تطوير البرامج (SDK) للأماكن على iOS، عليك تفويض Places API (الجديدة) أو Places API، حسب إصدارات حزمة تطوير البرامج (SDK) التي تستخدمها. 1
إذا كان تطبيقك يستخدم Maps JavaScript API، عليك دائمًا تفويضها على مفتاحك.
إذا كنت تستخدم أيضًا أيًا من خدمات Maps JavaScript API التالية، عليك أيضًا منح الإذن لواجهات برمجة التطبيقات المقابلة التالية:
الخدمة قيود واجهة برمجة التطبيقات خدمة الاتجاهات (الإصدار القديم) Directions API (القديمة) خدمة Distance Matrix (الإصدار القديم) Distance Matrix API (الإصدار القديم) خدمة الارتفاع Elevation API خدمة الترميز الجغرافي Geocoding API فئة Place، وواجهة برمجة التطبيقات Place Autocomplete Widget (New) وواجهة برمجة التطبيقات Place Autocomplete Data API Places API (جديدة)2 مكتبة الأماكن وخدمة الأماكن وأداة الإكمال التلقائي للأماكن Places API2
1 لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات حزمة تطوير البرامج بالاستناد إلى الموقع الجغرافي لنظام التشغيل Android وحزمة تطوير البرامج بالاستناد إلى الموقع الجغرافي لنظام التشغيل iOS.
2 إذا لم تكن متأكدًا مما إذا كنت بحاجة إلى تفويض Places API (الجديدة) أو Places API (القديمة)، يُرجى الاطّلاع على مستندات Maps JavaScript API.
إليك بعض الأمثلة:
أنت تستخدم "حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android" و"حزمة تطوير برامج الأماكن لأجهزة Android"، لذا عليك تضمين "حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android" وPlaces API (الجديدة) كقيود على واجهة برمجة التطبيقات.
يستخدم موقعك الإلكتروني Maps JavaScript API وElevation Service وMaps Static API، لذا عليك إضافة قيود واجهة برمجة التطبيقات لجميع واجهات برمجة التطبيقات التالية:
- Maps JavaScript API
- Elevation API
- Maps Static API
حظر التطبيق المقترَح
المواقع الإلكترونية
بالنسبة إلى المواقع الإلكترونية التي تستخدم خدمات Maps JavaScript API أو Maps Static API أو Street View Static API أو التي تطلب خدمات "منصة خرائط Google" الحديثة مباشرةً عبر HTTPS REST API أو gRPC، استخدِم قيد التطبيق المواقع الإلكترونية:
1 بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع Android وحزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS.
2 بالنسبة إلى تطبيقات الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج بالاستناد إلى الأماكن لنظام التشغيل Android وحزمة تطوير البرامج بالاستناد إلى الأماكن لنظام التشغيل iOS الأصليتين.
3 يمكنك أيضًا الاطّلاع على مقالة حماية استخدام Static Web API.
المواقع الإلكترونية التي تستخدم Maps Embed API
على الرغم من أنّ استخدام Maps Embed API لا يتطلّب دفع أي رسوم، يجب فرض قيود على أي مفتاح واجهة برمجة تطبيقات مستخدَم لمنع إساءة الاستخدام في الخدمات الأخرى.
أفضل الممارسات: أنشئ مفتاح واجهة برمجة تطبيقات منفصلاً لاستخدام Maps Embed API، واضبط هذا المفتاح على Maps Embed API فقط. يؤدي هذا التقييد إلى تأمين المفتاح بشكل كافٍ، ما يمنع استخدامه غير المصرَّح به في أي خدمة أخرى من Google. للتحكّم بشكل كامل في الأماكن التي يمكن استخدام مفتاح واجهة برمجة التطبيقات Maps Embed منها، تنصح Google أيضًا بتطبيق قيود التطبيقات على المواقع الإلكترونية.
إذا لم تتمكّن من فصل استخدام Maps Embed API إلى مفتاح واجهة برمجة تطبيقات منفصل، يمكنك تأمين مفتاحك الحالي باستخدام قيد تطبيق المواقع الإلكترونية.
التطبيقات والخوادم التي تستخدم خدمات الويب
بالنسبة إلى الخوادم والتطبيقات من جهة العميل من الشبكات الداخلية الموثوقة للشركات التي تستخدم خدمات الويب مع مفاتيح واجهة برمجة التطبيقات، استخدِم قيود التطبيق IP addresses.
يمكنك استخدام هذا الخيار للتطبيقات والخوادم التي تستخدم واجهات برمجة التطبيقات التالية:
4 بالنسبة إلى التطبيقات على الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج (SDK) للتنقّل.
5 لاستخدام الأجهزة الجوّالة بأمان، استخدِم خادمًا وكيلاً آمنًا.
6 بالنسبة إلى التطبيقات من جهة العميل، ننصحك باستخدام خدمة رصد الموقع الجغرافي الأصلية التي توفّرها المنصة، مثل W3C Geolocation لمتصفّحات الويب أو LocationManager أو موفِّر الموقع المدمج لنظام التشغيل Android أو إطار عمل Core Location من Apple لنظام التشغيل iOS.
7 بالنسبة إلى تطبيقات الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج (SDK) للأماكن في Android وحزمة تطوير البرامج (SDK) للأماكن في iOS.
8 للاستخدام الآمن من جهة العميل، استخدِم خادم وكيل آمن.
تطبيقات Android
بالنسبة إلى التطبيقات على Android، استخدِم قيد التطبيق Android apps. يُستخدم للتطبيقات التي تستخدم حِزم SDK التالية:
- حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android
- حزمة تطوير برامج الأماكن لأجهزة Android
- حزمة تطوير البرامج للتنقّل على أجهزة Android
بالإضافة إلى ذلك، يمكنك منع التحقّق من مفاتيح واجهة برمجة التطبيقات عن طريق الخطأ في التحكّم في الإصدارات باستخدام المكوّن الإضافي Secrets Gradle لإدخال البيانات السرية من ملف محلي بدلاً من تخزينها في ملف Android Manifest.
تطبيقات iOS
بالنسبة إلى التطبيقات على أجهزة iOS، استخدِم قيد التطبيق iOS apps. يُستخدم للتطبيقات والخوادم التي تستخدم حِزم SDK التالية:
- حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS
- حزمة تطوير برامج الأماكن لأجهزة iOS
- حزمة تطوير البرامج للتنقّل على أجهزة iOS
محتوى إضافي للقراءة
- إدارة مفاتيح واجهة برمجة التطبيقات
- استخدام مفاتيح واجهة برمجة التطبيقات للوصول إلى واجهات برمجة التطبيقات
- تحسين استخدامك لـ "منصة خرائط Google" من خلال الحصص (فيديو)
- كيفية إنشاء مفاتيح واجهة برمجة التطبيقات وحظرها في "منصة خرائط Google" (فيديو)
- فرض قيود على مفاتيح واجهة برمجة التطبيقات
- تأمين مفاتيح واجهة برمجة التطبيقات عند استخدام Static Maps API وStreet View API
- 15 من أفضل الممارسات في "منصة خرائط Google"