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

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

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

وتحتوي قاعدة بيانات Firebase في الوقت الفعلي على ميزة مشابهة تسمى قواعد أمان قاعدة بيانات Firebase في الوقت الفعلي

المصادقة

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

التفويض

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

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

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

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

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

يمكن أيضًا استخدام قواعد أمان Firebase المخصصة لخدمة 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/.*');
    }
  }
}

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