Catch up on everthing we announced at this year's Firebase Summit. Learn more

تمكين التحقق من التطبيق باستخدام reCAPTCHA v3 في تطبيقات الويب

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

reCAPTCHA v3 هي خدمة مجانية. التطبيق تحقق أيضا يدعم reCAPTCHA من المشاريع ، وهي خدمة مدفوعة الأجر مع حصة الحرة. لمعرفة الفرق بين اختبار reCAPTCHA V3 واختبار reCAPTCHA المؤسسة، راجع المقارنة من الميزات .

لاحظ أن reCAPTCHA v3 غير مرئي للمستخدمين. لن يطلب موفر reCAPTCHA v3 من المستخدمين حل التحدي في أي وقت. اطلع على وثائق V3 اختبار reCAPTCHA .

إذا كنت ترغب في استخدام التطبيقات تحقق مع مزود المخصصة الخاصة بك، انظر تطبيق مخصص التطبيقات تحقق مزود .

1. قم بإعداد مشروع Firebase

  1. إضافة Firebase لمشروع جافا سكريبت إذا لم تكن قد فعلت ذلك.

  2. تسجيل موقعك لاختبار reCAPTCHA V3 واحصل على مفتاح اختبار reCAPTCHA موقع V3 والمفتاح السري.

  3. تسجيل تطبيقاتك لاستخدام التطبيقات تحقق مع مقدم اختبار reCAPTCHA في إعدادات المشروع> التطبيقات تحقق جزء من وحدة Firebase. سوف تحتاج إلى توفير المفتاح السري الذي حصلت عليه في الخطوة السابقة.

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

  4. اختياري: في إعدادات تسجيل التطبيق، وتحديد العرف الوقت للوصول الى الحي (TTL) لالتطبيقات تحقق الرموز المميزة يصدرها مقدم. يمكنك ضبط TTL على أي قيمة تتراوح بين 30 دقيقة و 7 أيام. عند تغيير هذه القيمة ، انتبه للمفاضلات التالية:

    • الأمان: توفر TTLs الأقصر أمانًا أقوى ، لأنها تقلل الفترة التي يمكن فيها للمهاجم إساءة استخدام رمز تم تسريبه أو اعتراضه.
    • الأداء: تعني مدة البقاء (TTL) الأقصر أن تطبيقك سيجري المصادقة بشكل متكرر أكثر. نظرًا لأن عملية التصديق على التطبيق تضيف وقت استجابة لطلبات الشبكة في كل مرة يتم إجراؤها ، يمكن أن تؤثر مدة البقاء القصيرة على أداء تطبيقك.
    • الحصة والتكلفة: تستنفد مدة البقاء القصيرة وإعادة التصديق المتكررة حصتك بشكل أسرع ، وبالنسبة للخدمات المدفوعة ، من المحتمل أن تكلف أكثر. انظر الحصص وحدود .

    وTTL الافتراضية 1 يوم هو معقول بالنسبة لمعظم التطبيقات. لاحظ أن مكتبة App Check تقوم بتحديث الرموز المميزة في نصف مدة TTL تقريبًا.

2. قم بإضافة مكتبة App Check إلى تطبيقك

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

3. تهيئة فحص التطبيق

أضف رمز التهيئة التالي إلى تطبيقك ، قبل الوصول إلى أي من خدمات Firebase. سوف تحتاج إلى تمرير الخاص اختبار reCAPTCHA مفتاح الموقع الذي قمت بإنشائه في وحدة اختبار reCAPTCHA، ل activate() .

إصدار الويب 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck, ReCaptchaV3Provider } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true
});

إصدار الويب 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

بمجرد تثبيت مكتبة App Check في تطبيقك ، انشرها.

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

4. مقاييس مراقبة الطلب

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

قاعدة بيانات Realtime و Cloud Firestore والتخزين السحابي

أداة مهمة يمكنك استخدامها لاتخاذ هذا القرار لقاعدة بيانات Realtime و Cloud Firestore و Cloud Storage هي شاشة مقاييس طلب التحقق من التطبيق.

لعرض تحقق طلب التطبيقات مقاييس المنتج، افتح إعدادات المشروع> التطبيقات تحقق جزء من وحدة Firebase. على سبيل المثال:

لقطة شاشة لصفحة مقاييس التحقق من التطبيق

مقاييس الطلب لكل منتج مقسمة إلى أربع فئات:

  • طلبات التحقق هي تلك التي لديها التطبيقات صالحة تحقق رمزية. بعد تمكين فرض التحقق من التطبيق ، ستنجح الطلبات في هذه الفئة فقط.

  • طلبات العميل القديمة هي تلك التي تفتقد التطبيقات تحقق رمزية. قد تكون هذه الطلبات من إصدار أقدم من Firebase SDK قبل تضمين App Check في التطبيق.

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

  • طلبات غير صالحة هي تلك التي تحتوي على التطبيقات غير صالحة تحقق رمزية، والتي قد يكون من عميل زائف محاولة انتحال التطبيق الخاص بك، أو من البيئات يحتذى.

يجب أن يبلغ توزيع هذه الفئات لتطبيقك عندما تقرر تمكين الإنفاذ. فيما يلي بعض الإرشادات:

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

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

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

وظائف السحابة

بالنسبة إلى وظائف السحابة ، يمكنك الحصول على مقاييس التحقق من التطبيق عن طريق فحص سجلات وظائفك. يصدر كل استدعاء لوظيفة قابلة للاستدعاء إدخال سجل منظم مثل المثال التالي:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

يمكنك تحليل هذه المقاييس في وحدة التحكم سحابة جوجل من خلق السجلات التي تستند إلى قياس عداد مع مرشح المتري التالية:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

تسمية متري باستخدام حقل jsonPayload.verifications.appCheck .

5. تمكين الإنفاذ

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

قاعدة بيانات Realtime و Cloud Firestore والتخزين السحابي

لتمكين فرض تطبيق Realtime Database و Cloud Firestore (iOS و Android) والتخزين السحابي:

  1. فتح تحقق إعدادات المشروع> التطبيقات جزء من وحدة Firebase.

  2. قم بتوسيع عرض المقاييس للمنتج الذي تريد تمكين فرضه.

  3. انقر على فرض وتأكيد اختيارك.

لاحظ أن الأمر قد يستغرق ما يصل إلى 10 دقائق بعد تمكين التنفيذ حتى يتم تفعيله.

وظائف السحابة

انظر تمكين التطبيقات تحقق إنفاذ عن وظائف الغيمة .

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

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

انظر استخدام التطبيقات تحقق مع مزود التصحيح في تطبيقات الويب .