بدء استخدام قواعد أمان Cloud Storage

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

استخدام Cloud Storage وCloud Storage Security Rules يعني أنّه يمكنك التركيز على إنشاء تجربة مستخدم رائعة، دون الحاجة إلى إدارة البنية التحتية أو كتابة مصادقة معقّدة من جهة الخادم ورمز تفويض

نظرة عامة

تُستخدم Cloud Storage Security Rules لتحديد من لديه إمكانية الوصول للقراءة والكتابة إلى الملفات المخزنة في Cloud Storage، ونوضح كيفية تنظيم الملفات وبيانات التعريف التي تحتوي عليها. النوع الأساسي من القاعدة هو قاعدة allow، التي السماح بالعمليات read وwrite إذا كان الشرط المحدد اختياريًا التقى. في ما يلي بعض الأمثلة على القواعد:

// Rules can optionally specify a condition
allow write: if <condition>;

القواعد match مسارات ملفات التي تمثل Cloud Storage مراجع القواعد يمكن match مسار ملف واحد أو أكثر، ويمكن لأكثر من قاعدة واحدة match الملف مسار في request محدد:

// Rules match specific paths
match /images/profilePhoto.png {
  allow write: if <condition>;
}

match /images/croppedProfilePhoto.png {
  allow write: if <other_condition>;
}

ويتم أيضًا عرض سياق تقييم القاعدة من خلال request كائنات resource التي توفّر معلومات، مثل سياق المصادقة (request.auth) وحجم العنصر الحالي (resource.size).

// Rules can specify conditions that consider the request context
match /images/profilePhoto.png {
  allow write: if request.auth != null && request.resource.size < 5 * 1024 * 1024;
}

يمكنك الاطّلاع على مزيد من المعلومات حول "Cloud Storage Security Rules" في قسم تأمين الملفات.

قواعد نموذجية

يجب أن يحدّد Cloud Storage Security Rules أولاً service (في هذه الحالة firebase.storage) والحزمة Cloud Storage (عبر match /b/{bucket}/o) أي القواعد هي التقييم مقابلها. تتطلّب القواعد التلقائية استخدام Firebase Authentication، ولكن إليك ما يلي: بعض الأمثلة على القواعد المشتركة الأخرى التي تتضمن عناصر تحكم مختلفة في الوصول.

تلقائي

// Only authenticated users can read or write to the folder
service firebase.storage {
  match /b/{bucket}/o {
    match /someFolder/{fileName} {
      allow read, write: if request.auth != null;
    }
  }
}

علني

// Anyone can read or write to the folder, even non-users of your app.
// Because it is shared with App Engine, this will also make
// files uploaded via App Engine public.
service firebase.storage {
  match /b/{bucket}/o {
    match /someFolder/{fileName} {
      allow read, write;
    }
  }
}

مستخدم

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/file.txt"
    match /user/{userId}/{fileName} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}

خاص

// Access to files through Cloud Storage for Firebase is completely disallowed.
// Files may still be accessible through App Engine or Google Cloud Storage APIs.
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if false;
    }
  }
}

أثناء التطوير، يمكنك استخدام القواعد العامة بدلاً من القواعد التلقائية لجعل الملفات قابلة للقراءة والكتابة بشكل علني. هذا مفيد جدًا نماذج أوّلية، حتى يمكنك البدء بدون إعداد Firebase Authentication. ومع ذلك، ولأنّ Cloud Storage تشارك حزمة مع حزمة البيانات التلقائية. App Engine. تعرض هذه القاعدة أيضًا أي بيانات يستخدمها هذا التطبيق. للجمهور أيضًا.

تسمح لك قواعد المستخدم بمنح كل مستخدم من المستخدمين الذين تمت مصادقتهم تخزين الملفات. يمكنك أيضًا تأمين ملفاتك بالكامل باستخدام خصوصية هذه القواعد، ولكن عليك أن تضع في اعتبارك أن المستخدمين لن يتمكنوا من قراءة أو كتابة أي شيء حتى Cloud Storage باستخدام هذه القواعد. المستخدمون الذين يصلون إلى الملفات من تطبيقك على App Engine أو Google Cloud Storage واجهات برمجة تطبيقات قد يظل بإمكانهم الوصول

تحرير القواعد

يوفّر Cloud Storage طريقة سهلة لتعديل Cloud Storage Security Rules. من خلال علامة التبويب القواعد في قسم "مساحة التخزين" في وحدة تحكُّم Firebase في علامة التبويب القواعد، يمكنك الاطّلاع على ملفك الشخصي الحالي وتعديله بسرعة وسهولة القواعد. يتم نشر هذه القواعد بالنقر على نشر أو عن طريق حفظ الملف. (ctrl/cmd + s). يتم تحميل القواعد على الفور على Cloud Storage. الخوادم، ولكن قد يستغرق نشرها ما يصل إلى خمس دقائق.

يمكن استخدام واجهة سطر الأوامر Firebase لنشر القواعد أيضًا. في حال اختيار: Storage عند تشغيل firebase init، وهو ملف storage.rules يحتوي على نسخة من سيتم إنشاء القواعد التلقائية في دليل مشروعك. يمكنك نشر هذه القواعد باستخدام الأمر firebase deploy. إذا كانت لديك عدة مجموعات في مشروعك، يمكنك استخدام أهداف النشر لنشر القواعد على جميع مرة واحدة من مجلد المشروع نفسه.

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