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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

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

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

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

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

  • تُحدِّد قيود التطبيق استخدام مفتاح واجهة برمجة التطبيقات على منصة معيّنة (Android أو iOS) أو مواقع إلكترونية معيّنة (عنوان IP علني وموقع إلكتروني). يمكن إضافة نوع واحد فقط من قيود التطبيق إلى أي مفتاح فردي لواجهة برمجة التطبيقات.

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

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

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

  1. انتقِل إلى صفحة المقاييس في Google Cloud Console.

  2. اختَر عرض الفلاتر.

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

  4. انقر على Credentials (بيانات الاعتماد).

  5. ألغِ اختيار جميع بيانات الاعتماد.

  6. بالنسبة إلى كل مفتاح معروض، اختَر المفتاح وانقر على حسنًا.

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

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

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

  1. انتقِل إلى صفحة بيانات الاعتماد.
  2. اختَر مفتاح واجهة برمجة التطبيقات الذي تريد إعداد قيود عليه. تظهر صفحة موقع مفتاح واجهة برمجة التطبيقات.

  3. ضمن القيود الرئيسية، اختَر قيود التطبيق.

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

    نوع التقييد الوصف
    مُحيلات HTTP يمكنك تحديد موقع إلكتروني واحد أو أكثر من المواقع الإلكترونية المُحيلة. ويمكن استخدام أحرف البدل لتفويض جميع النطاقات الفرعية (على سبيل المثال، تقبل *.google.com جميع المواقع الإلكترونية التي تنتهي بـ .google.com). ويجب تحديد https:// وhttp:// كما هو. ويجب استخدام تمثيل خاص لأنواع أخرى من بروتوكولات عناوين URL للمُحيل. على سبيل المثال، يمكنك تنسيق file:///path/to/ على أنّه __file_url__//path/to/*. بعد تفعيل المُحيلين، احرص على مراقبة استخدامك للتأكّد من توافقه مع توقعاتك. بروتوكولات المُحيل التالية متاحة: about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://.
    عناوين IP حدِّد عنوان IPv4 أو IPv6 واحدًا أو شبكة فرعية باستخدام تدوين CIDR. استخدِم عنوان IP العلني للخادم لأنّ أحد طلبات خدمة الويب يتمّ التحقّق منه ويقارن عنوان IP الخارجي بالقيود المفروضة على مفتاح واجهة برمجة التطبيقات.
    التطبيقات المتوافقة مع Android أضِف بصمة شهادة شهادة SHA-1 واسم حزمة Android من ملف AndroidManifest.xml.
    تطبيقات iOS تحت الأنواع، اختَر معرِّف حزمة iOS المناسب من القائمة.
  4. انقر على حفظ.

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

  1. انتقِل إلى صفحة بيانات الاعتماد.

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

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

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

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

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

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

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

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

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

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

  1. انتقِل إلى صفحة بيانات الاعتماد.

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

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

  4. عندما يظهر مربع الحوار حذف بيانات الاعتماد، اختَر حذف.

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

طرق أخرى لتأمين واجهات برمجة التطبيقات

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

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

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

  1. انتقِل إلى صفحة مفاتيح واجهة برمجة التطبيقات.

  2. انقر على العودة إلى المفتاح السابق.

  3. في مربّع الحوار تراجع، انقر على عكس المفتاح.

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

تؤدي عملية التجديد الثانية هذه إلى استبدال قيمة المفتاح غير النشط القديمة.

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

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

  1. انتقِل إلى صفحة المقاييس.

  2. انقر على عرض الفلاتر.

  3. من مجمّعة حسب، اختَر طريقة واجهة برمجة التطبيقات.

  4. ضمن رمز الاستجابة، اختَر 2xx للاطّلاع على أي طلبات ناجحة لهذا المفتاح.

في حال رصد استخدام غير مُصرَّح به، يمكنك إجراء ما يلي:

  1. احظر استخدام مفاتيحك.

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

  2. إذا استمر الاستخدام غير المصرَّح به، عليك إعادة إنشاء المفاتيح المتأثرة أو حذفها.

  3. التواصل مع فريق الدعم

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

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

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

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

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

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

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

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

واجهات برمجة التطبيقات لخدمة Maps Web Service أو واجهات برمجة تطبيقات الويب الثابتة

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

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

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

  • استخدام خادم وكيل. يوفر الخادم الوكيل مصدرًا صلبًا للتفاعل مع واجهة برمجة تطبيقات "منصة خرائط Google" المناسبة. لمزيد من المعلومات حول استخدام خادم وكيل، يُرجى الاطّلاع على الحياة الحية: استخدام الخوادم الوكيلة مع مكتبات العملاء في Google Data .

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

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

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

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

واجهة برمجة التطبيقات/حزمة تطوير البرامج (SDK)/الخدمة قيود التطبيق (1) القيود المفروضة على واجهة برمجة التطبيقات (1) أفضل الممارسات
Maps JavaScript API (2) تقييد مُحيل HTTP Maps JavaScript API
Directions Service وMaps JavaScript API تقييد مُحيل HTTP Directions API وMaps JavaScript API
خدمة Distance Matrix وMaps JavaScript API تقييد مُحيل HTTP DISTANCE Matrix API وMaps JavaScript API
خدمة تحديد الارتفاع وMaps JavaScript API تقييد مُحيل HTTP واجهة برمجة التطبيقات للارتفاع وواجهة برمجة تطبيقات JavaScript للخرائط
خدمة ترميز المواقع الجغرافية وMaps JavaScript API تقييد مُحيل HTTP واجهة برمجة التطبيقات للترميز الجغرافي وMaps JavaScript API
مكتبة الأماكن وواجهة برمجة تطبيقات JavaScript للخرائط تقييد مُحيل HTTP واجهة برمجة تطبيقات الأماكن، واجهة برمجة تطبيقات JavaScript للخرائط
واجهة برمجة التطبيقات لتضمين الخرائط تقييد مُحيل HTTP Maps Embed API
Maps Static API تقييد مُحيل HTTP Maps Static API
واجهة برمجة التطبيقات الثابتة لميزة "التجوّل الافتراضي" تقييد مُحيل HTTP Street View Static API

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

واجهة برمجة التطبيقات/حزمة تطوير البرامج (SDK)/الخدمة قيود التطبيق (1) القيود المفروضة على واجهة برمجة التطبيقات (1) أفضل الممارسات
واجهة برمجة تطبيقات التحقق من العنوان تقييد عنوان IP(4) واجهة برمجة تطبيقات التحقق من العنوان
واجهة برمجة تطبيقات الاتجاهات تقييد عنوان IP(4) Directions API
واجهة برمجة تطبيقات مصفوفة المسافة تقييد عنوان IP(4) Distance Matrix API
واجهة برمجة تطبيقات الارتفاع تقييد عنوان IP(4) Elevation API
واجهة برمجة تطبيقات الترميز الجغرافي تقييد عنوان IP(4) Geocoding API
واجهة برمجة تطبيقات رصد الموقع الجغرافي تقييد عنوان IP(4) Geolocation API
واجهة برمجة تطبيقات الأماكن (5) تقييد عنوان IP(4) واجهة برمجة تطبيقات الأماكن
واجهة برمجة تطبيقات الطرق تقييد عنوان IP(4) Roads API
واجهة برمجة تطبيقات المنطقة الزمنية تقييد عنوان IP(4) Time Zone API

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

واجهة برمجة التطبيقات/حزمة تطوير البرامج (SDK)/الخدمة قيود التطبيق (1) القيود المفروضة على واجهة برمجة التطبيقات (1) أفضل الممارسات
حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع Android قيود Android حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع Android
تطبيق حزمة تطوير البرامج (SDK) لأجهزة Android قيود Android واجهة برمجة تطبيقات الأماكن

تطبيقات iOS

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

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

  • ستكون بيئة الاختبار مرئية بشكل علني.

  • التطبيق الذي يستخدم مفتاح واجهة برمجة تطبيقات جاهزًا للاستخدام في بيئة إنتاج.

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

3 بالنسبة إلى Maps Static API وStreet View Static API، بالإضافة إلى مفتاح واجهة برمجة التطبيقات، يجب توفير توقيع رقمي لتجاوز الحصة اليومية، والتي تبلغ 25,000 تحميل خريطة.

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

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

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