منع إساءة استخدام Gemini API باستخدام ميزة "فحص التطبيقات من Firebase"

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

الانتقال إلى تعليمات الإعداد

توفّر Firebase AI Logic بوابة وكيل تتيح لك الدمج مع Firebase App Check وحماية واجهات برمجة التطبيقات الخاصة بنماذج الذكاء الاصطناعي التوليدي التي تستدعيها تطبيقاتك على الأجهزة الجوّالة والويب. يتيح استخدام App Check مع حِزم تطوير البرامج (SDK)Firebase AI Logic جميع عمليات الضبط التالية:

  • يحمي موفّرَي خدمة "Gemini API": Gemini Developer API وAgent Platform Gemini API (formerly Vertex AI).

  • يحمي جميع الطُرز المتوافقة، بما في ذلك طُرز Gemini وطُرز Imagen.

تتيح App Check أيضًا الحماية من إعادة الاستخدام، ما يعني أنّه لا يمكن استخدام الرمز المميّز App Check إلا مرة واحدة.

ملخّص شامل لطريقة عمل App Check

باستخدام App Check، تستخدم الأجهزة التي تشغّل تطبيقك موفّرًا لخدمة إثبات صحة التطبيق أو الجهاز يتحقّق من أحد الأمرين التاليين أو كليهما:

  • الطلبات صادرة من تطبيقك الأصلي
  • الطلبات صادرة من جهاز أصلي لم يتم التلاعب به

يتم إرفاق شهادة التصديق هذه بكل طلب يقدّمه تطبيقك باستخدام إحدى حِزم Firebase AI Logic SDK. عند فرض استخدام App Check، سيتم رفض الطلبات الواردة من الأجهزة التي لا تتضمّن شهادة مصادقة صالحة، بالإضافة إلى أي طلبات واردة من تطبيق أو منصة لم تمنحها الإذن.

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

يمكنك العثور على معلومات تفصيلية عن App Check في المستندات الخاصة به، بما في ذلك الحصص والحدود.

إعداد App Check

توفّر مستندات App Check أوصافًا تفصيلية لمقدّمي خدمات التصديق بالإضافة إلى تعليمات تفصيلية حول التنفيذ.

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

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

  2. (مطلوب) فعِّل App Check قبل إرسال تطبيقك إلى نظام تحكّم في رمز المصدر متاح للجميع أو مشاركة تطبيقك أو إتاحته للجميع.

  3. (يُنصح به) يمكنك تعزيز الحماية من خلال إضافة الحماية من إعادة التشغيل، ما يعني أنّه لا يمكن استخدام رمز مميّز App Check إلا مرة واحدة.

  4. بالنسبة إلى التطوير المحلي عند فرض استخدام App Check، اضبط App Check موفّر تصحيح الأخطاء لتجاوز عملية إثبات صحة الجهاز مع الحفاظ على فرض استخدام App Check. اطّلِع على تعليمات الإعداد الخاصة بمنصتك: iOS+‎ | Android | الويب | Flutter | Unity.

تعزيز الحماية من خلال إضافة ميزة "الحماية من إعادة التشغيل"

ننصح باستخدام أحدث إصدارات حزمة SDK، ولكن احرص على استخدام أحد هذه الإصدارات على الأقل للاستفادة من ميزة الحماية من إعادة التشغيل:
الإصدار 12.2.0 أو إصدار أحدث لمنصات Apple | الإصدار 34.14.0 أو إصدار أحدث من Android BoM (الإصدار 19.1.0 أو إصدار أحدث من App Check) | الإصدار 12.14.0 أو إصدار أحدث من الويب | الإصدار 4.15.0 أو إصدار أحدث من Flutter (الإصدار 4.10.0 أو إصدار أحدث من App Check) | الإصدار 13.12.0 أو إصدار أحدث من Unity

تستخدم App Check تلقائيًا رموز الجلسات التي تتضمّن مدة بقاء قابلة للضبط تتراوح بين 30 دقيقة و7 أيام. يتم تخزين رموز الجلسات المميزة هذه مؤقتًا من خلال حزمة تطوير البرامج (SDK) الخاصة بـ App Check، ويتم إرسالها مع الطلبات من تطبيقك، ويمكن إعادة استخدامها إلى أن تنتهي مدة البقاء (TTL). يُعدّ استخدام رموز الجلسات المميزة حماية أساسية.

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

  • ستحظر App Check الطلبات إلى Firebase AI Logic التي تستخدم رموز الجلسات. بدلاً من ذلك، لن يسمح App Check بتقديم طلب إلى Firebase AI Logic إلا إذا كان يستخدم رمزًا مميزًا جديدًا محدود الاستخدام.

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

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

إعداد ميزة "الحماية من إعادة التشغيل" وفرض استخدامها

انقر على مزوّد خدمة Gemini API لعرض المحتوى والرمز الخاصين بالمزوّد في هذه الصفحة.

في ما يلي كيفية إعداد ميزة "الحماية من إعادة التشغيل" وتفعيلها:

  1. إذا لم يسبق لك إجراء ذلك، عليك تنفيذ App Check وتفعيل فرض App Check لتطبيقك.

  2. فعِّل استخدام الرموز المميّزة المحدودة الاستخدام.

    في تطبيقك أثناء إنشاء مثيل، اضبط المَعلمة useLimitedUseAppCheckTokens على true:

    Swift

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    let ai = FirebaseAI.firebaseAI(
      backend: .googleAI(),
      useLimitedUseAppCheckTokens: true
    )
    
    // ...
    
    

    Kotlin

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    val ai = Firebase.ai(
      backend = GenerativeBackend.googleAI(),
      useLimitedUseAppCheckTokens = true
    )
    
    // ...
    
    

    Java

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    FirebaseAI ai = FirebaseAI.getInstance(
      /* backend: */ GenerativeBackend.googleAI(),
      /* useLimitedUseAppCheckTokens: */ true
    );
    
    // ...
    
    

    Web

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    const ai = getAI(firebaseApp, {
      backend: new GoogleAIBackend(),
      useLimitedUseAppCheckTokens: true
    });
    
    // ...
    
    

    Dart

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    final ai = await FirebaseAI.googleAI(
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Unity

    // ...
    
    // During instantiation, enable usage of limited-use tokens
    var ai = FirebaseAI.GetInstance(
      useLimitedUseAppCheckTokens: true
    );
    
    // ...
    
  3. فرض الحماية من إعادة الإرسال:

    1. في قاعدة الرموز البرمجية لتطبيقك، تأكَّد من أنّك فعّلت استخدام الرموز المميزة ذات الاستخدام المحدود (راجِع الخطوة السابقة).

    2. في وحدة تحكّم Firebase، انتقِل إلى الأمان > فحص التطبيقات.

    3. وسِّع عرض المقاييس الخاص بـ Firebase AI Logic.

    4. تأكَّد من أنّ الحماية الأساسية مفروضة، ثم انقر على متابعة.

    5. بالنسبة إلى الحماية من إعادة التشغيل، اختَر غير مفروضة (مراقبة فقط) أو مفروضة.

      ضَع في اعتبارك ما يلي لتحديد الوقت المناسب لفرض الحماية من إعادة التشغيل:

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

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

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

فهم كيفية تكامل Firebase AI Logic مع App Check

لاستخدام حِزم تطوير البرامج Firebase AI Logic(SDK)، يجب تفعيل واجهة برمجة التطبيقات Firebase AI Logic (firebasevertexai.googleapis.com) في مشروع Firebase. ويرجع ذلك إلى أنّ الطلبات التي يتم إجراؤها من خلال حِزم تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic يتم إرسالها أولاً إلى خادم Firebase AI Logic، الذي يعمل كبوابة وكيل يتم فيها التحقّق من Firebase App Check قبل السماح للطلب بالمتابعة إلى الخلفية الخاصة بموفّر "Gemini API" الذي اخترته وإلى واجهات برمجة التطبيقات للوصول إلى نماذج Gemini وImagen.

(اختياري) فرض App Check بدون مقدّم خدمة شهادة اعتماد الإنتاج (مقدّم خدمة تصحيح الأخطاء فقط)

يمكنك فرض App Check على AI Logic بدون تسجيل تطبيقك لدى مقدّم خدمة إثبات صحة الإصدار العلني. يتيح لك هذا الإعداد استخدام App Check مقدّم خدمة تصحيح الأخطاء لبدء استخدام AI Logic بسهولة أكبر مع الحفاظ على حماية Gemini API.

  1. تحقَّق مما إذا كان قد تم فرض App Check على AI Logic.

    1. في وحدة تحكّم Firebase، انتقِل إلى الأمان > فحص التطبيقات > علامة التبويب واجهات برمجة التطبيقات.

    2. ابحث عن صف Firebase AI Logic. إذا ظهرت لك Unenforced، استمِر في اتّباع بقية التعليمات.

  2. انقر على صف Firebase AI Logic، وستظهر لك رسومات بيانية للمقاييس. أسفل هذه الرسومات البيانية، انقر على الإعداد.

  3. في الشاشة الأولى من مربع الحوار (الحماية الأساسية)، اختَر مفروضة، ثم انقر على متابعة.

  4. في الشاشة التالية (حماية إعادة التشغيل)، انقر على غير مفعَّل. يمكنك إعداد هذه الميزة في أي وقت لاحقًا والعودة إلى سير عمل الإعداد هذا. انقر على متابعة.

  5. في الشاشة النهائية، راجِع الاعتبارات المتعلقة بفرض App Check للتأكّد من أنّك مستعد لفرض App Check. إذا كنت مستعدًا، انقر على متابعة.

    لا تحتاج إلى تسجيل تطبيقاتك إذا كنت تريد فقط فرض استخدام App Check وفقط استخدام مقدّم خدمة تصحيح الأخطاء مع AI Logic في تطبيق مرحلة ما قبل الإنتاج. ومع ذلك، عندما تكون مستعدًا لطرح تطبيقك للمستخدمين النهائيين، عليك تسجيل تطبيقاتك كجزء من إعداد موفّر خدمة إثبات صحة في مرحلة الإنتاج (مثل App Attest أو Play Integrity أو reCAPTCHA Enterprise).

  6. للتطوير على الجهاز عندما يكون App Check إلزاميًا، عليك ضبط موفر تصحيح الأخطاء الخاص بـ App Check لتجاوز عملية التصديق مع الحفاظ على فرض App Check.

    للحصول على تفاصيل حول إعداد مقدّم خدمة تصحيح الأخطاء، اطّلِع على التعليمات الخاصة بمنصتك: iOS+ | Android | الويب | Flutter | Unity.

تحديد المشاكل وحلّها