ফায়ারবেস রিয়েলটাইম ডেটাবেস বিধিগুলি বুঝতে

ফায়ারবেস রিয়েলটাইম ডেটাবেস সুরক্ষা বিধিগুলি আপনাকে নির্ধারণ করে যে আপনার ডেটাবেজে অ্যাক্সেস কে পড়েছেন এবং কী লিখেছেন, কীভাবে আপনার ডেটা কাঠামোগত হয় এবং কী সূচি বিদ্যমান। এই নিয়মগুলি ফায়ারবেস সার্ভারে লাইভ থাকে এবং সর্বদা স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয়। প্রতিটি পড়ার এবং লেখার অনুরোধটি কেবল তখনই সম্পন্ন হবে যদি আপনার নিয়মগুলি এটির অনুমতি দেয়। ডিফল্টরূপে, আপনার বিধিগুলি কাউকে আপনার ডাটাবেসে অ্যাক্সেসের অনুমতি দেয় না। এটি আপনার নিয়মগুলি কাস্টমাইজ করার বা প্রমাণীকরণের সেট আপ না করা অবধি আপনার ডাটাবেসটিকে অপব্যবহার থেকে রক্ষা করা।

রিয়েলটাইম ডাটাবেস সুরক্ষা বিধিগুলির একটি জাভাস্ক্রিপ্ট-জাতীয় সিনট্যাক্স রয়েছে এবং চার ধরণের আসে:

বিধি প্রকার
.রেড ব্যবহারকারীরা ডেটা পড়ার অনুমতি দিলে এবং কখন তা বর্ণনা করে।
.রাইট কখন এবং কখন ডেটা লেখার অনুমতি রয়েছে তা বর্ণনা করে।
। বৈধতা সঠিকরূপে ফর্ম্যাট করা মানটি কেমন হবে তা নির্ধারণ করে, এতে শিশু বৈশিষ্ট্য এবং ডেটা টাইপ রয়েছে কিনা।
.indexOn অর্ডারিং এবং কোয়েরিতে সহায়তা করতে কোনও শিশুকে সূচকে নির্দিষ্ট করে।

রিয়েলটাইম ডাটাবেস সুরক্ষা ওভারভিউ

ফায়ারবেস রিয়েলটাইম ডেটাবেস আপনার অ্যাপ্লিকেশনটির সুরক্ষা পরিচালনার জন্য সরঞ্জামগুলির একটি সম্পূর্ণ সেট সরবরাহ করে। এই সরঞ্জামগুলি আপনার ব্যবহারকারীদের প্রমাণীকরণ করা, ব্যবহারকারীর অনুমতি প্রয়োগ করা, এবং ইনপুটগুলিকে বৈধ করার পক্ষে সহজ করে তোলে।

ফায়ারবেস চালিত অ্যাপ্লিকেশনগুলি অন্যান্য অনেক প্রযুক্তি স্ট্যাকের চেয়ে ক্লায়েন্ট-সাইড কোড চালায়। অতএব, আমরা যেভাবে সুরক্ষার কাছে যাচ্ছি তা আপনার ব্যবহারের চেয়ে কিছুটা আলাদা হতে পারে।

প্রমাণীকরণ

আপনার অ্যাপ্লিকেশন সুরক্ষিত করার একটি সাধারণ প্রথম পদক্ষেপ আপনার ব্যবহারকারীদের সনাক্তকরণ ying এই প্রক্রিয়া প্রমাণীকরণ বলা হয়। আপনি ব্যবহার করতে পারেন Firebase প্রমাণীকরণ ব্যবহারকারীদের আছে আপনার অ্যাপ্লিকেশানে সাইন করা দরকার। ফায়ারবেস প্রমাণীকরণে গুগল এবং ফেসবুকের মতো সাধারণ প্রমাণীকরণ পদ্ধতির পাশাপাশি ইমেল এবং পাসওয়ার্ড লগইন, বেনামে লগইন এবং আরও অনেক কিছুতে ড্রপ-ইন সমর্থন অন্তর্ভুক্ত।

ব্যবহারকারীর পরিচয় একটি গুরুত্বপূর্ণ সুরক্ষা ধারণা। বিভিন্ন ব্যবহারকারীর বিভিন্ন ডেটা থাকে এবং কখনও কখনও তাদের আলাদা ক্ষমতা থাকে। উদাহরণস্বরূপ, একটি চ্যাট অ্যাপ্লিকেশনটিতে, প্রতিটি বার্তা এটি তৈরি করা ব্যবহারকারীর সাথে সম্পর্কিত। ব্যবহারকারীরা তাদের নিজস্ব বার্তাগুলি মুছতে সক্ষম হতে পারে তবে অন্যান্য ব্যবহারকারীদের দ্বারা পোস্ট করা বার্তাগুলি নয়।

অনুমোদন

আপনার ব্যবহারকারীকে সনাক্ত করা সুরক্ষার অংশ। একবার তারা যখন জানবেন, আপনার ডাটাবেসে ডেটাতে তাদের অ্যাক্সেস নিয়ন্ত্রণ করার একটি উপায় প্রয়োজন need রিয়েলটাইম ডেটাবেস সুরক্ষা বিধি আপনাকে প্রতিটি ব্যবহারকারীর জন্য অ্যাক্সেস নিয়ন্ত্রণ করতে দেয়। উদাহরণস্বরূপ, এখানে নিরাপত্তা নিয়ম একটি সেট যে কেউ পথে পড়ার অনুমতি দেয় এর /foo/ , কিন্তু এটা লিখতে কেউ:

{
  "rules": {
    "foo": {
      ".read": true,
      ".write": false
    }
  }
}

.read এবং .write বিধি, নির্ঝর তাই এই ruleset অনুদান পথ যে কোনো ডেটাতে অ্যাক্সেস পড়া /foo/ সেইসাথে গভীর পাথ যেমন /foo/bar/baz । লক্ষ্য করুন .read এবং .write ডাটাবেসের ওভাররাইড নিয়ম অগভীর গভীর নিয়ম, তাই এক্সেস পড়তে /foo/bar/baz এখনও এই উদাহরণে প্রদান করা হবে এমনকি যদি পথ এ নিয়ম /foo/bar/baz মূল্যায়ন মিথ্যা।

রিয়েলটাইম ডাটাবেস সিকিউরিটি রুলস অন্তর্ভুক্ত বিল্ট-ইন ভেরিয়েবল এবং ফাংশন যা আপনি অন্য পথ, সার্ভার সাইড টাইমস্ট্যাম্প, প্রমাণীকরণ তথ্য, এবং আরো অনেক কিছু উল্লেখ করতে অনুমতি দেয়। এখানে একটি নিয়ম একটি উদাহরণ যে অনুদান থেকে প্রামাণ ব্যবহারকারীদের জন্য অ্যাক্সেসের লিখুন /users/<uid>/ <ইউআইডি> Firebase প্রমাণীকরণ মাধ্যমে প্রাপ্ত ব্যবহারকারীর আইডি নয় যেখানে।

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}

তথ্য বৈধতা

ফায়ারবেস রিয়েলটাইম ডেটাবেস স্কিমহীন। এটি আপনার বিকাশের সাথে সাথে জিনিসগুলিকে পরিবর্তন করা সহজ করে তোলে, তবে একবার আপনার অ্যাপ বিতরণ করার জন্য প্রস্তুত হয়ে গেলে, তথ্যের জন্য ধারাবাহিক থাকা জরুরি। নিয়ম ভাষাটির অন্তর্ভুক্ত .validate নিয়ম, যা তোমাদের জন্য ব্যবহৃত একই এক্সপ্রেশন ব্যবহার বৈধতা যুক্তিবিজ্ঞান আবেদন করতে পারবেন .read এবং .write নিয়ম। মাত্র তফাত হল যে বৈধতা নিয়ম, নির্ঝর না তাই সমস্ত প্রাসঙ্গিক বৈধতা নিয়ম অনুক্রমে সত্য নির্ণয় করা আবশ্যক লেখার অনুমতি দেওয়া হবে জন্য।

এই নিয়ম যে ডেটা লেখা জোরদার /foo/ 100 অক্ষরের কম একটি স্ট্রিং হতে হবে:

{
  "rules": {
    "foo": {
      ".validate": "newData.isString() && newData.val().length < 100"
    }
  }
}

ভ্যালিডেশন নিয়ম সব এক্সেস আছে একই বিল্ট-ইন ফাংশন এবং ভেরিয়েবল .read এবং .write নিয়ম। আপনি আপনার ডাটাবেসে অন্য কোথাও ডেটা, আপনার ব্যবহারকারীর পরিচয়, সার্ভারের সময় এবং আরও অনেক কিছু সম্পর্কে সচেতন এমন বৈধতা তৈরি করার জন্য এটি ব্যবহার করতে পারেন।

ডাটাবেস সূচী সংজ্ঞায়িত করা হচ্ছে

ফায়ারবেস রিয়েলটাইম ডেটাবেস অর্ডার এবং ডেটা অনুসন্ধানের অনুমতি দেয়। ছোট ডেটা মাপের জন্য, ডাটাবেস অ্যাডহক অনুসন্ধানকে সমর্থন করে, তাই সাধারণত বিকাশের সময় সূচীগুলির প্রয়োজন হয় না। আপনার অ্যাপ্লিকেশন চালু করার আগে আপনার অ্যাপ্লিকেশন বাড়ার সাথে সাথে তারা কাজ চালিয়ে যেতে হবে তা নিশ্চিত করতে আপনার যে কোনও প্রশ্নের জন্য সূচি নির্দিষ্ট করা গুরুত্বপূর্ণ।

ইনডেক্সে নিদিষ্ট ব্যবহার করছেন .indexOn নিয়ম। এখানে একটি উদাহরণ সূচক ঘোষণা যা ডাইনোসরগুলির তালিকার জন্য উচ্চতা এবং দৈর্ঘ্যের ক্ষেত্রগুলিকে সূচক করবে:

{
  "rules": {
    "dinosaurs": {
      ".indexOn": ["height", "length"]
    }
  }
}

পরবর্তী পদক্ষেপ