Firebase নিরাপত্তা বিধিগুলি ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস এবং ক্লাউড স্টোরেজ [S1]-এ ডেটা সুরক্ষিত করার জন্য একটি দানাদার, সার্ভার-প্রবর্তিত পদ্ধতি প্রদান করে। যেহেতু Firebase অ্যাপ্লিকেশনগুলি প্রায়শই ক্লায়েন্টের দিক থেকে সরাসরি এই ক্লাউড পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করে, এই নিয়মগুলি ব্যাকএন্ড ডেটা [S1]-এ অননুমোদিত অ্যাক্সেস প্রতিরোধ করে একমাত্র বাধা উপস্থাপন করে৷
অনুমতিমূলক নিয়মের প্রভাব
ভুল কনফিগার করা নিয়মগুলি উল্লেখযোগ্য ডেটা এক্সপোজার [S2] হতে পারে৷ যদি নিয়মগুলি অত্যধিক অনুমোদনযোগ্য হিসাবে সেট করা হয়-উদাহরণস্বরূপ, ডিফল্ট 'পরীক্ষা মোড' সেটিংস ব্যবহার করে যা বিশ্বব্যাপী অ্যাক্সেসের অনুমতি দেয়-প্রজেক্ট আইডি সম্পর্কে জ্ঞান থাকা যেকোনো ব্যবহারকারী [S2] সম্পূর্ণ ডাটাবেস সামগ্রী পড়তে, সংশোধন করতে বা মুছে ফেলতে পারে। এটি সমস্ত ক্লায়েন্ট-সাইড নিরাপত্তা ব্যবস্থাকে বাইপাস করে এবং এর ফলে ব্যবহারকারীর সংবেদনশীল তথ্য হারাতে পারে বা মোট পরিষেবা ব্যাহত হতে পারে [S2]।
মূল কারণ: অপর্যাপ্ত অনুমোদন যুক্তি
এই দুর্বলতার মূল কারণ হল সাধারণত নির্দিষ্ট শর্তগুলি বাস্তবায়নে ব্যর্থতা যা ব্যবহারকারীর পরিচয় বা সংস্থান বৈশিষ্ট্য [S3] এর উপর ভিত্তি করে অ্যাক্সেসকে সীমাবদ্ধ করে। বিকাশকারীরা প্রায়শই ডিফল্ট কনফিগারেশনগুলি উত্পাদন পরিবেশে সক্রিয় রেখে দেয় যা request.auth বস্তু [S3] বৈধ করে না। request.auth মূল্যায়ন না করে, সিস্টেমটি একটি বৈধ প্রমাণীকৃত ব্যবহারকারী এবং একটি বেনামী অনুরোধকারী [S3] এর মধ্যে পার্থক্য করতে পারে না৷
প্রযুক্তিগত প্রতিকার
একটি Firebase পরিবেশ সুরক্ষিত করার জন্য উন্মুক্ত অ্যাক্সেস থেকে সর্বনিম্ন-অধিকারের একটি প্রধান মডেলে যাওয়া প্রয়োজন।
- প্রমাণিকরণ প্রয়োগ করুন:
request.authঅবজেক্টটি শূন্য [S3] নয় কিনা তা পরীক্ষা করে নিশ্চিত করুন যে সমস্ত সংবেদনশীল পাথের জন্য একটি বৈধ ব্যবহারকারী সেশন প্রয়োজন। - পরিচয়-ভিত্তিক অ্যাক্সেস প্রয়োগ করুন: ব্যবহারকারীর UID (
request.auth.uid) নথির মধ্যে একটি ক্ষেত্রের সাথে বা নথির আইডির সাথে তুলনা করে এমন নিয়মগুলি কনফিগার করুন যাতে ব্যবহারকারীরা শুধুমাত্র তাদের নিজস্ব ডেটা [S3] অ্যাক্সেস করতে পারেন। - দানাদার অনুমতি স্কোপিং: সংগ্রহের জন্য বিশ্বব্যাপী ওয়াইল্ডকার্ড এড়িয়ে চলুন। পরিবর্তে, সম্ভাব্য আক্রমণ পৃষ্ঠ [S2] কমাতে প্রতিটি সংগ্রহ এবং উপ-সংগ্রহের জন্য নির্দিষ্ট নিয়মগুলি সংজ্ঞায়িত করুন।
- ইমুলেটর স্যুটের মাধ্যমে বৈধতা: স্থানীয়ভাবে নিরাপত্তা নিয়ম পরীক্ষা করতে Firebase এমুলেটর স্যুট ব্যবহার করুন। এটি একটি লাইভ এনভায়রনমেন্ট [S2] মোতায়েন করার আগে বিভিন্ন ব্যবহারকারী ব্যক্তির বিরুদ্ধে অ্যাক্সেস নিয়ন্ত্রণ যুক্তি যাচাই করার অনুমতি দেয়।
কিভাবে FixVibe এর জন্য পরীক্ষা করে
FixVibe এখন এটিকে শুধুমাত্র পঠনযোগ্য BaaS স্ক্যান হিসেবে অন্তর্ভুক্ত করে। baas.firebase-rules একই-অরিজিন জাভাস্ক্রিপ্ট বান্ডেল থেকে Firebase কনফিগারেশন বের করে, আধুনিক initializeApp(...) বান্ডিল আকার সহ, তারপর রিয়েলটাইম ডাটাবেস, ফায়ারস্টোর, এবং ZXBEZVIXVK2XTOVK2-এর সাথে রিয়েলটাইম ডাটাবেস চেক করে। অননুমোদিত রিড-ওনলি অনুরোধ। ফায়ারস্টোরের জন্য, এটি প্রথমে রুট সংগ্রহের তালিকা করার চেষ্টা করে; যখন তালিকা ব্লক করা হয়, এটি users, accounts, customers, orders, orders, users এর মতো সাধারণ সংবেদনশীল সংগ্রহের নামগুলিও অনুসন্ধান করে messages, admin, এবং settings। এটি শুধুমাত্র সফল বেনামী পঠন বা তালিকার রিপোর্ট করে এবং গ্রাহক নথির বিষয়বস্তু লিখতে, মুছে বা সঞ্চয় করে না।
