ফায়ারবেস স্টোরেজ (Firebase Storage) একটি নিরাপদ এবং স্কেলেবল প্ল্যাটফর্ম যা ক্লাউডে ফাইল সঞ্চয় এবং সেগুলি অ্যাপ্লিকেশন থেকে পরিচালনা করার সুবিধা প্রদান করে। ফায়ারবেস স্টোরেজ ব্যবহার করার সময়, ফাইল আপলোড ও ডাউনলোড করার জন্য পারমিশন এবং নিরাপত্তা নিয়মাবলী (Security Rules) সেট করা অত্যন্ত গুরুত্বপূর্ণ। এই নিরাপত্তা নিয়মাবলী ফাইলের অ্যাক্সেস নিয়ন্ত্রণ করে এবং নিশ্চিত করে যে শুধুমাত্র বৈধ ব্যবহারকারীরা ডেটা দেখতে বা পরিবর্তন করতে পারবেন।
ফায়ারবেস স্টোরেজ পারমিশন এবং নিরাপত্তা নিয়মাবলী
ফায়ারবেস স্টোরেজের নিরাপত্তা নিয়মাবলী Firebase Security Rules ব্যবহার করে সেট করা হয়। এই নিয়মাবলী ডেটার অ্যাক্সেস কন্ট্রোল এবং নিরাপত্তা নিশ্চিত করে। উদাহরণস্বরূপ, আপনি নিয়মাবলী সেট করতে পারেন যাতে শুধুমাত্র প্রমাণিত ব্যবহারকারীরা (authenticated users) তাদের নিজস্ব ফাইল আপলোড বা ডাউনলোড করতে পারে।
১. ফায়ারবেস স্টোরেজ নিরাপত্তা নিয়মাবলী কনফিগার করা
ফায়ারবেস কনসোল থেকে ফায়ারবেস স্টোরেজের Rules সেকশনে যেতে হবে এবং সেখানে আপনি আপনার নিরাপত্তা নিয়মাবলী সেট করতে পারেন। সাধারণত, এটি দুটি মৌলিক প্যারামিটার দিয়ে কনফিগার করা হয়:
- read: ডেটা পড়ার অনুমতি
- write: ডেটা লেখার অনুমতি
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে আপনি নিরাপত্তা নিয়মাবলী কনফিগার করতে পারেন।
২. ফায়ারবেস স্টোরেজের সাধারণ নিরাপত্তা নিয়মাবলী
পাবলিক অ্যাক্সেস
ফায়ারবেস স্টোরেজের জন্য পাবলিক অ্যাক্সেস নির্ধারণ করা যেতে পারে, যেখানে যেকোনো ব্যবহারকারী ফাইল অ্যাক্সেস করতে পারে।
rules: {
".read": "auth != null", // শুধু লগইন করা ব্যবহারকারীরা পড়তে পারবে
".write": "auth != null" // শুধু লগইন করা ব্যবহারকারীরা লিখতে পারবে
}
এখানে, auth != null এর মানে হল যে শুধুমাত্র লগইন করা ব্যবহারকারীরা ফাইল পড়তে এবং লিখতে পারবে। যদি আপনি পাবলিক অ্যাক্সেস চান, তবে আপনি true ব্যবহার করতে পারেন।
পাবলিক অ্যাক্সেস উদাহরণ (শুধুমাত্র পড়া)
rules: {
".read": "true", // যে কেউ ডেটা পড়তে পারবে
".write": "auth != null" // শুধুমাত্র লগইন করা ব্যবহারকারীরা লিখতে পারবে
}
এখানে .read এর মান true রেখে যে কেউ ফাইল পড়তে পারবে, কিন্তু লেখার জন্য লগইন করা ব্যবহারকারী দরকার।
৩. ফায়ারবেস স্টোরেজের নিরাপত্তা নিয়মাবলী: ইউজারের নিজস্ব ফাইল
একটি সাধারণ নিরাপত্তা নিয়মাবলী হল যে শুধুমাত্র ব্যবহারকারীরা তাদের নিজস্ব ফাইল আপলোড এবং ডাউনলোড করতে পারবে। এটি নিশ্চিত করার জন্য auth.uid ব্যবহার করা হয়।
rules: {
"users": {
"$uid": {
".read": "$uid === auth.uid", // ব্যবহারকারী শুধুমাত্র তার নিজস্ব ফাইল পড়তে পারবে
".write": "$uid === auth.uid" // ব্যবহারকারী শুধুমাত্র তার নিজস্ব ফাইল লিখতে পারবে
}
}
}
এখানে $uid হল ব্যবহারকারীর ইউনিক আইডি এবং এটি auth.uid এর সাথে তুলনা করা হচ্ছে। এর মাধ্যমে আপনি নিশ্চিত করতে পারেন যে একজন ব্যবহারকারী শুধুমাত্র তার নিজস্ব ফাইল অ্যাক্সেস করতে পারবে।
৪. নির্দিষ্ট ফোল্ডার বা ফাইলের জন্য নিয়মাবলী
আপনি ফাইল স্টোরেজের নির্দিষ্ট ফোল্ডার বা ফাইলের জন্য নির্দিষ্ট নিয়মাবলীও নির্ধারণ করতে পারেন।
rules: {
"images": {
"$imageId": {
".read": "auth != null", // লগইন ব্যবহারকারী ছবি পড়তে পারবে
".write": "auth != null && newData.size < 5000000" // ফাইল আকার 5MB এর কম হতে হবে
}
}
}
এখানে images/$imageId নির্দেশ করছে যে images ফোল্ডারে রাখা সব ছবি শুধুমাত্র লগইন ব্যবহারকারীরা পড়তে পারবে এবং ফাইল আকার 5MB এর বেশি হলে তা আপলোড করা যাবে না।
৫. ফায়ারবেস স্টোরেজে ফাইলের আকার ও ধরণ সীমাবদ্ধ করা
আপনি স্টোরেজে আপলোড হওয়া ফাইলগুলোর আকার এবং ধরণও সীমাবদ্ধ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি কেবল পিডিএফ ফাইল আপলোড করতে চান:
rules: {
"files": {
"$fileId": {
".write": "auth != null && newData.contentType == 'application/pdf'", // শুধুমাত্র PDF ফাইল আপলোড করা যাবে
".validate": "newData.size < 10485760" // ফাইল আকার 10MB এর কম হতে হবে
}
}
}
এখানে, newData.contentType ব্যবহার করে ফাইলের ধরণ যাচাই করা হচ্ছে এবং newData.size ব্যবহার করে ফাইলের আকার সীমিত করা হচ্ছে।
৬. ফায়ারবেস স্টোরেজ রুলসের উন্নত নিরাপত্তা কৌশল
কাস্টম অথেন্টিকেশন এবং রুলস
আপনি আরও শক্তিশালী নিরাপত্তার জন্য কাস্টম অথেন্টিকেশন ব্যবহার করতে পারেন। যেমন, শুধুমাত্র কিছু নির্দিষ্ট গ্রুপের সদস্যরা একটি নির্দিষ্ট ফোল্ডারে ফাইল আপলোড করতে পারে।
rules: {
"reports": {
"$reportId": {
".write": "auth != null && auth.token.isAdmin == true", // শুধুমাত্র অ্যাডমিনরা রিপোর্ট আপলোড করতে পারবে
".read": "auth != null" // সকল লগইন ব্যবহারকারী রিপোর্ট পড়তে পারবে
}
}
}
এখানে auth.token.isAdmin একটি কাস্টম ক্লেইম যা যাচাই করে যে ব্যবহারকারী অ্যাডমিন কি না, এবং কেবলমাত্র অ্যাডমিনরা ফাইল আপলোড করতে পারবে।
সারাংশ
ফায়ারবেস স্টোরেজ ব্যবহার করার সময় নিরাপত্তা নিয়মাবলী অত্যন্ত গুরুত্বপূর্ণ। এই নিয়মাবলী ফাইলের পড়া এবং লিখা অ্যাক্সেস কন্ট্রোল করে, যেমন কেবলমাত্র লগইন করা ব্যবহারকারীরা তাদের নিজস্ব ফাইল অ্যাক্সেস করতে পারে। এছাড়াও, আপনি ফাইলের আকার, ধরণ এবং অন্যান্য শর্তাবলী দ্বারা ফাইল আপলোড সীমাবদ্ধ করতে পারেন। এই নিয়মাবলী ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ফাইল স্টোরেজ সিস্টেমে উচ্চ স্তরের নিরাপত্তা এবং নিয়ন্ত্রণ বজায় রাখতে পারবেন।
Read more