تقليديًا، كان الأمان أحد أكثر الجوانب تعقيدًا في تطوير التطبيقات. في معظم التطبيقات، على المطوّرين إنشاء خادم وتشغيله لمعالجة المصادقة (تحديد هوية المستخدم) والتفويض (تحديد الإجراءات التي يمكن للمستخدم تنفيذها). يصعب إعداد المصادقة والتفويض، ويصعب أكثر ضبطهما بشكل صحيح، وهما ضروريان لنجاح منتجك.
على غرار ما يوفّره 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 /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
يمكنك تعديل Security Rules هذه في Firebase console من خلال الانتقال إلى علامة التبويب قواعد البيانات والتخزين > التخزين > القواعد.
التحقق من صحة البيانات
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.
مزيد من المعلومات عن تأمين بياناتك باستخدام قواعد الأمان