فهم قواعد أمان Firebase لخدمة Cloud Storage

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

على غرار الطريقة التي يسهّل بها Firebase Authentication مصادقة المستخدمين، يسهّل عليك Firebase Security Rules في Cloud Storage تفويض المستخدمين والتحقق من صحة الطلبات. بإمكان Cloud Storage Security Rules إدارة التعقيد بالنيابة عنك من خلال السماح لك بتحديد الأذونات المستندة إلى المسار. باستخدام بضعة أسطر من الرموز البرمجية فقط، يمكنك كتابة قواعد تفويض تحدّ من طلبات Cloud Storage إلى مستخدم معيّن أو تحدّ من حجم عملية التحميل.

يتضمّن Firebase Realtime Database ميزة مشابهة اسمها Firebase Realtime Database Security Rules.

المصادقة

إنّ معرفة هوية المستخدمين هو جزء مهم من إنشاء تطبيق، وتوفر Firebase Authentication حلًا سهل الاستخدام وآمنًا على جانب العميل فقط للقيام بالمصادقة. يرتبط Firebase Security Rules لـ Cloud Storage بـ Firebase Authentication للحصول على أمان يستند إلى المستخدم. عند مصادقة مستخدم باستخدام Firebase Authentication، يصبح المتغيّر request.auth في Cloud Storage Security Rules كائنًا يحتوي على المعرّف الفريد للمستخدم (request.auth.uid) وجميع معلومات المستخدم الأخرى في الرمز المميّز (request.auth.token). وفي حال عدم مصادقة المستخدم، يكون request.auth هو null. يتيح لك ذلك التحكّم بأمان في الوصول إلى البيانات على أساس كل مستخدم يمكنك الاطّلاع على مزيد من المعلومات في القسم المصادقة.

التفويض

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

تتيح لك Cloud Storage تحديد قواعد التفويض الخاصة بكل ملف ومسار على خوادمنا وتحديد إمكانية الوصول إلى الملفات في تطبيقك. على سبيل المثال، يتطلب Cloud Storage Security Rules التلقائي Firebase Authentication لإكمال أي عمليات read أو write على جميع الملفات:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

يمكنك تعديل هذه القواعد من خلال اختيار تطبيق Firebase في وحدة تحكّم Firebase وعرض علامة التبويب Rules في قسم "مساحة التخزين".

التحقّق من صحة البيانات

يمكن أيضًا استخدام Firebase Security Rules لـ Cloud Storage للتحقّق من صحة البيانات، بما في ذلك التحقّق من اسم الملف ومساره بالإضافة إلى سمات البيانات الوصفية للملف، مثل contentType وsize.

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

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

  • ابدأ بتطوير قواعد التخطيط لمجموعات بيانات Cloud Storage.

  • اطّلِع على مزيد من المعلومات عن تأمين بياناتك باستخدام قواعد الأمان.