حماية بيانات اعتماد السحابة الإلكترونية لتطبيق Firebase ML Apple

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

1- تقليل نطاق مفاتيح واجهة برمجة التطبيقات الحالية

أولاً، يجب ضبط مفاتيح واجهة برمجة التطبيقات الحالية لمنع الوصول إلى Cloud Vision واجهة برمجة التطبيقات:

  1. افتح صفحة بيانات الاعتماد في وحدة تحكُّم Google Cloud. اختَر مشروعك عندما يُطلب منك ذلك.

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

  3. في القسم قيود واجهة برمجة التطبيقات، اختَر تقييد المفتاح، ثم أضِف البيانات إلى قائمة بجميع واجهات برمجة التطبيقات التي تريد أن يصل إليها مفتاح واجهة برمجة التطبيقات. يُرجى التأكد من أنّ: عدم تضمين Cloud Vision API

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

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

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

2- إنشاء مفتاح واجهة برمجة تطبيقات جديد لاستخدامه مع تعلُّم الآلة في Firebase

بعد ذلك، أنشِئ مفتاح واجهة برمجة تطبيقات جديدًا لتعلُّم الآلة في Firebase يسمح فقط باستدعاءات واجهة Cloud Vision API:

  1. ارجع إلى صفحة بيانات الاعتماد. تأكد من أن لا يزال مشروع Firebase محدّدًا.

  2. انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات. دوِّن مفتاح واجهة برمجة التطبيقات الجديد، ثم انقر على تقييد المفتاح.

  3. في القسم قيود واجهة برمجة التطبيقات، اختَر تقييد المفتاح، ثم أضِف البيانات إلى اسرد فقط Cloud Vision API.

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

للمساعدة في التخفيف من عواقب مفتاح مخترَق، يجب عليك تقليل الحصة لكل مستخدم في Cloud Vision API من الإعداد التلقائي: لإجراء ذلك:

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

  2. في قسم الطلبات، حدِّد حصة الطلبات في الدقيقة لكل مستخدم. إلى شيء معقول لتطبيقك. على سبيل المثال، إذا كان تطبيقك يتضمن تحميل صورة لمستند لاسترداد النص، فمن غير المرجح أن سيفعل المستخدم ذلك أكثر من مرة كل بضع ثوانٍ، لذا ستكون الحصة 30-40 من المحتمل أن تكون آمنة.

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

4. طلب بيانات Cloud API باستخدام مفتاح واجهة برمجة تطبيقات تعلُّم الآلة في Firebase

أخيرًا، في تطبيقك، اضبط تعلُّم الآلة في Firebase لاستخدام مفتاح واجهة برمجة التطبيقات الجديد.

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

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

بعد حصول تطبيقك على مفتاح واجهة برمجة التطبيقات بأمان، عندما تريد طلب عليك تحديد المفتاح التالي في Firebase ML Cloud API:

Swift

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objective-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

بالإضافة إلى ذلك، يجب عليك اتباع النصائح العامة في تأمين مفتاح واجهة برمجة التطبيقات:

الخطوات التالية

يمكنك الاطّلاع على قائمة التحقق للإطلاق للحصول على معلومات حول إعداد تطبيقك لإطلاقه عند استخدام ميزات Firebase الأخرى.