ফায়ারবেস সুরক্ষা চেকলিস্ট

আপনার Firebase সম্পদ এবং আপনার ব্যবহারকারীদের ডেটা সুরক্ষিত রাখতে, এই নির্দেশিকাগুলি অনুসরণ করুন। প্রতিটি আইটেম অগত্যা আপনার প্রয়োজনীয়তার জন্য প্রযোজ্য হবে না, কিন্তু আপনি আপনার অ্যাপটি ডেভেলপ করার সময় সেগুলি মনে রাখবেন।

অপমানজনক ট্রাফিক এড়িয়ে চলুন

ব্যাকএন্ড পরিষেবার জন্য পর্যবেক্ষণ এবং সতর্কতা সেট আপ করুন

যেমন অস্বীকার অফ সার্ভিস (ডস) আক্রমণ, পর্যবেক্ষণ এবং জন্য সতর্ক সেট আপ হিসাবে অবমাননাকর ট্রাফিক সনাক্ত করতে, ক্লাউড Firestore , রিয়েলটাইম ডাটাবেস , ক্লাউড স্টোরেজ এবং হোস্টিং

আপনি আপনার আবেদন ওপর হামলা সন্দেহ করেন, সাপোর্ট কাছে পৌঁছাতে তাড়াতাড়ি সম্ভব হিসাবে তাদের জানতে কী ঘটছে তা দিন।

অ্যাপ চেক সক্ষম করুন

সহায়তা করতে শুধুমাত্র আপনার অ্যাপ্লিকেশান, ব্যাকএন্ড পরিষেবা অ্যাক্সেস করতে পারবেন সক্ষম নিশ্চিত অ্যাপ চেক সমর্থন এটা যে প্রতি সেবার জন্য।

স্বাভাবিক ট্রাফিকের জন্য স্কেল করার জন্য আপনার ক্লাউড ফাংশন কনফিগার করুন

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

সীমা প্রায় পৌঁছে গেলে অবহিত হওয়ার জন্য সতর্কতা সেট আপ করুন

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

স্ব-ডোজ প্রতিরোধ করুন: এমুলেটরগুলির সাথে স্থানীয়ভাবে ফাংশন পরীক্ষা করুন

ক্লাউড ফাংশন ডেভেলপ করার সময় দুর্ঘটনাক্রমে নিজেকে ডস করা সহজ হতে পারে: উদাহরণস্বরূপ, একটি অসীম ট্রিগার-রাইট লুপ তৈরি করে। আপনি আপনার গঠন করে লাইভ সেবা প্রভাবিত থেকে এই ভুল প্রতিরোধ করতে পারি Firebase এমুলেটর স্যুট

(এবং আপনি থেকে এটি সরানোর দ্বারা ঘটনাক্রমে ডস নিজেকে, কি আপনার ফাংশন undeploy যদি index.js তারপর চলমান firebase deploy --only functions ।)

যেখানে রিয়েল-টাইম প্রতিক্রিয়াশীলতা কম গুরুত্বপূর্ণ, কাঠামো প্রতিরক্ষামূলকভাবে কাজ করে

আপনি বাস্তব সময়ে একটি ফাংশন ফলাফল উপস্থাপন করতে প্রয়োজন হবে না থাকে, তাহলে আপনি ব্যাচে প্রসেস করে অবমাননাকর ট্রাফিক বিরুদ্ধে প্রশমিত করতে পারেন: একটি ফলাফল প্রকাশ প্রকা / সদ বিষয়, এবং একটি সঙ্গে নিয়মিত সময় অন্তর ফলাফল প্রক্রিয়া নির্ধারিত ফাংশন

API কীগুলি বুঝুন

Firebase পরিষেবার জন্য API কী গোপন নয়

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

API কী স্কোপিং সেট আপ করুন

কোনো আক্রমণকারী বিরুদ্ধে একটি অতিরিক্ত প্রতিবন্ধক স্পুফ অনুরোধ আপনার API কী ব্যবহার করার চেষ্টা হিসাবে, আপনি API কীগুলির তৈরি করতে পারেন আপনার অ্যাপ গ্রাহকদের scoped

FCM সার্ভার কী গোপন রাখুন

Firebase পরিষেবার জন্য ভিন্ন এপিআই কি, FCM সার্ভার কি-সংকলন (দ্বারা ব্যবহৃত লিগ্যাসি FCM HTTP- র এপিআই ) স্পর্শকাতর এবং গোপন রাখতে হবে।

পরিষেবা অ্যাকাউন্টের চাবি গোপন রাখুন

এছাড়াও Firebase পরিষেবার জন্য অসদৃশ API কীগুলির, সেবা অ্যাকাউন্ট ব্যক্তিগত কি-সংকলন (দ্বারা ব্যবহৃত এডমিন SDK এর ) স্পর্শকাতর এবং গোপন রাখতে হবে।

নিরাপত্তার নিয়ম

উত্পাদন বা লক মোডে নিয়ম শুরু করুন

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

ক্লাউড ফায়ারস্টোর (প্রোডাকশন মোড) এবং রিয়েলটাইম ডেটাবেস (লকড মোড) এর নতুন দৃষ্টান্তগুলির জন্য এটি একটি ডিফল্ট সেটিংস। একটি নতুন ডাটাবেস উদাহরণ স্থাপন করার সময় এই বিকল্পটি চয়ন করুন।

ক্লাউড স্টোরেজের জন্য, নীচের মত একটি নিরাপত্তা নিয়ম কনফিগারেশন দিয়ে শুরু করুন:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if false;
    }
  }
}

নিরাপত্তা নিয়ম একটি স্কিমা; আপনি নথি যোগ করার সময় নিয়ম যোগ করুন

প্রি-লঞ্চ টাস্ক হিসেবে আপনার অ্যাপ লেখার পর নিরাপত্তার নিয়ম লিখবেন না। পরিবর্তে, আপনার অ্যাপ লেখার সময় নিরাপত্তার নিয়মগুলি লিখুন, তাদের একটি ডাটাবেস স্কিমার মতো ব্যবহার করুন: যখনই আপনার কোনও নতুন নথির ধরন বা পাথ কাঠামো ব্যবহার করার প্রয়োজন হয়, প্রথমে এর সুরক্ষা নিয়মটি লিখুন।

এমুলেটর স্যুট দিয়ে ইউনিট পরীক্ষার নিরাপত্তা নিয়ম; CI এ যোগ করুন

নিশ্চিত করুন আপনার নিরাপত্তা নিয়ম আপনার অ্যাপ্লিকেশনের উন্নয়ন, ইউনিট পরীক্ষা সঙ্গে আপনার নিয়ম সাথে রাখা হয় Firebase এমুলেটর স্যুট এবং আপনার সি আই পাইপলাইন এই পরীক্ষার যোগ করুন। এই গাইড দেখুন ক্লাউড Firestore এবং রিয়েলটাইম ডাটাবেস

প্রমাণীকরণ

কাস্টম প্রমাণীকরণ: একটি বিশ্বস্ত (সার্ভার-সাইড) পরিবেশ থেকে পুদিনা JWTs

আপনার যদি ইতিমধ্যেই একটি নিরাপদ সাইন-ইন সিস্টেম থাকে, কাস্টম সিস্টেম বা তৃতীয় পক্ষের পরিষেবা, আপনি আপনার বিদ্যমান সিস্টেমকে ফায়ারবেস পরিষেবাগুলির সাথে প্রমাণীকরণের জন্য ব্যবহার করতে পারেন। কাস্টম JWTs তৈরি করুন একটি বিশ্বস্ত পরিবেশ থেকে, তারপর আপনার ক্লায়েন্ট, যা এ প্রমাণীকৃত করতে টোকেন ব্যবহার করতে টোকেন পাস ( আইওএস , অ্যান্ড্রয়েড , ওয়েব , ইউনিটি , সি ++ )।

একটি তৃতীয় পক্ষের প্রদানকারীর সাথে কাস্টম প্রমাণীকরণ ব্যবহার একটি উদাহরণ জন্য, ব্লগ পোস্ট, দেখুন Firebase Okta ব্যবহার সহ প্রমাণীকরণ

পরিচালিত প্রমাণীকরণ: OAuth 2.0 প্রদানকারী সবচেয়ে নিরাপদ

আপনি যদি Firebase- এর পরিচালিত প্রমাণীকরণ বৈশিষ্ট্যগুলি ব্যবহার করেন, OAuth 2.0 / OpenID Connect প্রদানকারী বিকল্পগুলি (গুগল, ফেসবুক ইত্যাদি) সবচেয়ে নিরাপদ। যদি আপনি (আপনার ব্যবহারকারীর ভিত্তির উপর নির্ভর করে) পারেন তবে আপনার এই প্রদানকারীদের এক বা একাধিক সমর্থন করা উচিত।

ইমেইল-পাসওয়ার্ড প্রমাণীকরণ: নিষ্ঠুর বাহিনীর আক্রমণ প্রতিরোধে সাইন-ইন এন্ডপয়েন্টের জন্য কঠোর কোটা সেট করুন

আপনি Firebase এর পরিচালিত ইমেল-পাসওয়ার্ড প্রমাণীকরণ সেবা ব্যবহার করেন, তাহলে ডিফল্ট কোটা আঁট করা identitytoolkit.googleapis.com পাশব বল আক্রমণ প্রতিরোধ করার জন্য এন্ড পয়েন্ট। আপনি এর থেকে তা করতে পারেন Google মেঘ কনসোলে এপিআই এর পাতা

মাল্টি-ফ্যাক্টর প্রমাণীকরণের জন্য ক্লাউড আইডেন্টিটি প্ল্যাটফর্মে আপগ্রেড করুন

সাইন-ইন অতিরিক্ত নিরাপত্তার জন্য, আপনি আপগ্রেড করার দ্বারা বহু-ফ্যাক্টর প্রমাণীকরণ সমর্থন যোগ করতে পারেন ক্লাউড পরিচয় প্ল্যাটফর্ম । আপগ্রেড করার পর আপনার বিদ্যমান Firebase প্রমাণীকরণ কোড কাজ করতে থাকবে।

বেনামী প্রমাণীকরণ

উষ্ণ অনবোর্ডিংয়ের জন্য শুধুমাত্র বেনামী প্রমাণীকরণ ব্যবহার করুন

ব্যবহারকারীরা প্রকৃতপক্ষে সাইন ইন করার আগে তাদের বুনিয়াদি অবস্থা সংরক্ষণ করতে বেনামী প্রমাণীকরণ ব্যবহার করুন।

ব্যবহারকারীরা তাদের ফোন হারিয়ে গেলে ডেটা চাইলে অন্য সাইন-ইন পদ্ধতিতে রূপান্তর করুন

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

নিরাপত্তা বিধি ব্যবহার করুন যাতে ব্যবহারকারীদের সাইন ইন প্রদানকারীতে রূপান্তরিত হতে হয় অথবা তাদের ইমেইল যাচাই করা হয়

যে কেউ আপনার প্রকল্পে একটি বেনামী অ্যাকাউন্ট তৈরি করতে পারে। যে মাথায় রেখে, সঙ্গে সমস্ত অ-সর্বজনীন ডেটা সুরক্ষিত নিরাপত্তা বিধি জারি করে যে নির্দিষ্ট সাইন-ইন পদ্ধতি বা ই-মেইল ঠিকানায় প্রয়োজন

উদাহরণ স্বরূপ:

allow write: if request.auth.token.firebase.sign_in_provider != "anonymous";
allow write: if request.auth.token.email_verified = true;

পরিবেশ ব্যবস্থাপনা

উন্নয়ন এবং মঞ্চায়ন প্রকল্প স্থাপন করুন

উন্নয়ন, মঞ্চায়ন এবং উৎপাদনের জন্য পৃথক ফায়ারবেস প্রকল্প স্থাপন করুন। মঞ্চ প্রকল্পের বিরুদ্ধে পরীক্ষা না হওয়া পর্যন্ত ক্লায়েন্ট কোডটি উৎপাদনে একত্রিত করবেন না।

উত্পাদন ডেটাতে দলের অ্যাক্সেস সীমিত করুন

আপনি কোন বৃহত্তর দলের সাথে কাজ করেন, তাহলে আপনি যেকোন একটি ব্যবহার করে উৎপাদন ডেটাতে অ্যাক্সেস সীমিত দ্বারা ভুল এবং ভঙ্গের পরিণতি প্রশমিত করতে পূর্বনির্ধারিত ভূমিকা বা কাস্টম IAM ভূমিকা।

যদি আপনার টিম উন্নয়নের জন্য এমুলেটর স্যুট ব্যবহার করে, তাহলে আপনাকে উৎপাদন প্রকল্পে ব্যাপক অ্যাক্সেস দেওয়ার প্রয়োজন হতে পারে না।

গ্রন্থাগার ব্যবস্থাপনা

লাইব্রেরির ভুল বানান বা নতুন রক্ষণাবেক্ষণকারীদের জন্য সতর্ক থাকুন

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

পরিবর্তনগুলি না বুঝে লাইব্রেরি আপডেট করবেন না

আপগ্রেড করার আগে আপনার ব্যবহৃত যেকোনো লাইব্রেরির পরিবর্তন লগগুলি দেখুন। নিশ্চিত করুন যে আপগ্রেড মান যোগ করে, এবং চেক করুন যে রক্ষণাবেক্ষণকারী এখনও একটি পার্টি যা আপনি বিশ্বাস করেন।

ওয়াচডগ লাইব্রেরিগুলি ডেভ বা পরীক্ষা নির্ভরতা হিসাবে ইনস্টল করুন

যেমন একটি লাইব্রেরি জাতীয় ব্যবহার Snyk অনিরাপদ নির্ভরতা জন্য আপনার প্রকল্পের স্ক্যান করতে বলুন।

ফাংশনগুলির জন্য মনিটরিং সেট আপ করুন; লাইব্রেরি আপডেটের পরে এটি পরীক্ষা করুন

আপনি ব্যবহার করেন তাহলে ক্লাউড কার্যাবলী এটির SDK এর , আপনি পারেন নিরীক্ষণ ও সতর্ক করা , অস্বাভাবিক আচরণ গ্রন্থাগার আপডেট দ্বারা সৃষ্ট আচরণ সহ।

ক্লাউড ফাংশন নিরাপত্তা

ক্লাউড ফাংশনের এনভায়রনমেন্ট ভেরিয়েবলে কখনোই সংবেদনশীল তথ্য রাখবেন না

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

  • Firebase API কীগুলির, যা হয় স্টোরে গোপন না শুধু তাদের কোডে এম্বেড করুন।
  • আপনি যদি ক্লাউড ফাংশনে ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করেন, তাহলে আপনাকে স্পষ্টভাবে পরিষেবা অ্যাকাউন্টের শংসাপত্র সরবরাহ করতে হবে না, কারণ এসডিকে স্বয়ংক্রিয়ভাবে সেগুলি শুরু করার সময় অর্জন করতে পারে।
  • আপনি Google এবং Google মেঘ API গুলি পরিষেবা অ্যাকাউন্ট পরিচয়পত্র প্রয়োজন, কলিং থাকেন, Node.js এর জন্য Google প্রমাণীকরণ লাইব্রেরি থেকে এই পরিচয়পত্র পেতে পারেন আবেদন ডিফল্ট পরিচয়পত্র , যা স্বয়ংক্রিয়ভাবে ক্লাউড কার্যাবলী মধ্যে জনবহুল।
  • আপনার ক্লাউড কার্যাবলী উপলব্ধ অ- Google পরিষেবাগুলির জন্য ব্যক্তিগত কী ও পরিচয়পত্র তৈরি করতে হলে, ব্যবহার ক্লাউড সিক্রেট ম্যানেজার

সংবেদনশীল তথ্য এনক্রিপ্ট করুন

আপনি যদি আপনার ক্লাউড ফাংশনে সংবেদনশীল তথ্য প্রেরণ এড়াতে না পারেন, তাহলে তথ্য এনক্রিপ্ট করার জন্য আপনাকে অবশ্যই আপনার নিজস্ব কাস্টম সমাধান নিয়ে আসতে হবে।

সহজ ফাংশন নিরাপদ; যদি আপনার জটিলতার প্রয়োজন হয়, ক্লাউড রান বিবেচনা করুন

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

আপনার যা দরকার তা জটিল লজিক বা পরিবেশ কনফিগারেশন থাকে, ব্যবহারের বিষয়ে বিবেচনা ক্লাউড চালান পরিবর্তে ক্লাউড কার্যাবলী করুন।