Check out what’s new from Firebase at Google I/O 2022. Learn more

ওয়েব অ্যাপে reCAPTCHA v3 দিয়ে অ্যাপ চেক সক্ষম করুন

এই পৃষ্ঠাটি আপনাকে দেখায় কিভাবে বিল্ট-ইন reCAPTCHA v3 প্রদানকারী ব্যবহার করে একটি ওয়েব অ্যাপে অ্যাপ চেক সক্ষম করতে হয়। আপনি যখন অ্যাপ চেক সক্ষম করেন, তখন আপনি নিশ্চিত করতে সাহায্য করেন যে শুধুমাত্র আপনার অ্যাপ আপনার প্রকল্পের ফায়ারবেস সংস্থানগুলি অ্যাক্সেস করতে পারে। এই বৈশিষ্ট্য একটি ওভারভিউ দেখুন.

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

মনে রাখবেন reCAPTCHA v3 ব্যবহারকারীদের কাছে অদৃশ্য। reCAPTCHA v3 প্রদানকারীর ব্যবহারকারীদের যেকোনো সময় চ্যালেঞ্জ সমাধানের প্রয়োজন হবে না। reCAPTCHA v3 ডকুমেন্টেশন দেখুন।

আপনি যদি আপনার নিজস্ব কাস্টম প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করতে চান, একটি কাস্টম অ্যাপ চেক প্রদানকারীকে প্রয়োগ করুন দেখুন

1. আপনার Firebase প্রকল্প সেট আপ করুন

  1. আপনার JavaScript প্রোজেক্টে Firebase যোগ করুন যদি আপনি ইতিমধ্যে এটি না করে থাকেন।

  2. reCAPTCHA v3 এর জন্য আপনার সাইট নিবন্ধন করুন এবং আপনার reCAPTCHA v3 সাইট কী এবং গোপন কী পান৷

  3. Firebase কনসোলের অ্যাপ চেক বিভাগে reCAPTCHA প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করতে আপনার অ্যাপগুলি নিবন্ধন করুন। আগের ধাপে আপনি যে গোপন কী পেয়েছেন তা আপনাকে প্রদান করতে হবে।

    আপনাকে সাধারণত আপনার প্রকল্পের সমস্ত অ্যাপ নিবন্ধন করতে হবে, কারণ একবার আপনি একটি Firebase পণ্যের জন্য এনফোর্সমেন্ট সক্ষম করলে, শুধুমাত্র নিবন্ধিত অ্যাপগুলি পণ্যের ব্যাকএন্ড সংস্থানগুলি অ্যাক্সেস করতে সক্ষম হবে৷

  4. ঐচ্ছিক : অ্যাপ রেজিস্ট্রেশন সেটিংসে, প্রদানকারীর দ্বারা জারি করা অ্যাপ চেক টোকেনের জন্য একটি কাস্টম টাইম-টু-লাইভ (TTL) সেট করুন। আপনি TTL 30 মিনিট থেকে 7 দিনের মধ্যে যেকোনো মান সেট করতে পারেন। এই মান পরিবর্তন করার সময়, নিম্নলিখিত ট্রেডঅফ সম্পর্কে সচেতন হন:

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

    বেশিরভাগ অ্যাপের জন্য 1 দিনের ডিফল্ট TTL যুক্তিসঙ্গত। মনে রাখবেন যে অ্যাপ চেক লাইব্রেরি টিটিএল সময়কালের প্রায় অর্ধেক সময়ে টোকেন রিফ্রেশ করে।

2. আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি যোগ করুন

আপনার ওয়েব অ্যাপে Firebase যোগ করুন যদি আপনি ইতিমধ্যে না করে থাকেন। অ্যাপ চেক লাইব্রেরি আমদানি করতে ভুলবেন না।

3. অ্যাপ চেক শুরু করুন

ফায়ারবেস পরিষেবাগুলি অ্যাক্সেস করার আগে আপনার অ্যাপ্লিকেশনে নিম্নলিখিত প্রাথমিক কোড যোগ করুন। activate() করতে আপনাকে আপনার reCAPTCHA সাইট কী পাস করতে হবে, যা আপনি reCAPTCHA কনসোলে তৈরি করেছেন।

Web version 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck, ReCaptchaV3Provider } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true
});

Web version 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

একবার আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি ইনস্টল হয়ে গেলে, এটি স্থাপন করুন।

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

4. অনুরোধের মেট্রিক্স মনিটর করুন

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

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

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

একটি পণ্যের জন্য অ্যাপ চেক অনুরোধের মেট্রিক্স দেখতে, Firebase কনসোলের অ্যাপ চেক বিভাগটি খুলুন। উদাহরণ স্বরূপ:

অ্যাপ চেক মেট্রিক্স পৃষ্ঠার স্ক্রিনশট

প্রতিটি পণ্যের জন্য অনুরোধের মেট্রিক্স চারটি বিভাগে বিভক্ত:

  • যাচাইকৃত অনুরোধগুলি হল সেইগুলি যেগুলির একটি বৈধ অ্যাপ চেক টোকেন রয়েছে৷ আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করার পরে, শুধুমাত্র এই বিভাগের অনুরোধগুলি সফল হবে৷

  • পুরানো ক্লায়েন্ট অনুরোধগুলি হল সেইগুলি যেগুলির একটি অ্যাপ চেক টোকেন নেই৷ অ্যাপ চেক অ্যাপে অন্তর্ভুক্ত করার আগে এই অনুরোধগুলি Firebase SDK-এর পুরানো সংস্করণ থেকে হতে পারে।

  • অজানা মূল অনুরোধগুলি হল সেইগুলি যেগুলিতে একটি অ্যাপ চেক টোকেন নেই এবং মনে হচ্ছে না যে সেগুলি Firebase SDK থেকে এসেছে৷ এগুলি চুরি করা API কীগুলির সাহায্যে করা অনুরোধ থেকে হতে পারে বা Firebase SDK ছাড়াই করা জাল অনুরোধ থেকে হতে পারে৷

  • অবৈধ অনুরোধগুলি হল সেইগুলি যেগুলির একটি অবৈধ অ্যাপ চেক টোকেন রয়েছে, যা আপনার অ্যাপের ছদ্মবেশী করার চেষ্টাকারী একটি অপ্রমাণিত ক্লায়েন্ট বা অনুকরণ করা পরিবেশ থেকে হতে পারে৷

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

  • যদি সাম্প্রতিক অনুরোধগুলির প্রায় সবগুলিই যাচাইকৃত ক্লায়েন্টদের কাছ থেকে হয়, তাহলে আপনার ব্যাকএন্ড সংস্থানগুলিকে সুরক্ষিত করার জন্য এনফোর্সমেন্ট সক্ষম করার কথা বিবেচনা করুন৷

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

  • যদি আপনার অ্যাপটি এখনও চালু না হয়ে থাকে, তাহলে আপনাকে অবিলম্বে অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করতে হবে, যেহেতু কোনও পুরানো ক্লায়েন্ট ব্যবহারে নেই৷

ক্লাউড ফাংশন

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

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

আপনি নিম্নলিখিত মেট্রিক ফিল্টার সহ একটি লগ-ভিত্তিক কাউন্টার মেট্রিক তৈরি করে Google ক্লাউড কনসোলে এই মেট্রিকগুলি বিশ্লেষণ করতে পারেন:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

jsonPayload.verifications.appCheck ফিল্ডটি ব্যবহার করে মেট্রিক লেবেল করুন

5. এনফোর্সমেন্ট সক্ষম করুন

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

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর (আইওএস এবং অ্যান্ড্রয়েড), এবং ক্লাউড স্টোরেজের জন্য এনফোর্সমেন্ট সক্ষম করতে:

  1. Firebase কনসোলের অ্যাপ চেক বিভাগটি খুলুন।

  2. আপনি যে পণ্যটির জন্য প্রয়োগ সক্ষম করতে চান তার মেট্রিক্স ভিউ প্রসারিত করুন।

  3. এনফোর্স ক্লিক করুন এবং আপনার পছন্দ নিশ্চিত করুন।

মনে রাখবেন যে এটি কার্যকর হওয়ার জন্য আপনি এনফোর্সমেন্ট সক্ষম করার পরে এটি 15 মিনিট পর্যন্ত সময় নিতে পারে৷

ক্লাউড ফাংশন

ক্লাউড ফাংশনের জন্য অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করুন দেখুন।

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

আপনি যদি অ্যাপ চেকের জন্য আপনার অ্যাপ নিবন্ধিত করার পরে, আপনি এমন পরিবেশে আপনার অ্যাপ চালাতে চান যে অ্যাপ চেক সাধারণত বৈধ হিসাবে শ্রেণীবদ্ধ করা হয় না, যেমন স্থানীয়ভাবে বিকাশের সময়, বা একটি ক্রমাগত ইন্টিগ্রেশন (CI) পরিবেশ থেকে, আপনি তৈরি করতে পারেন আপনার অ্যাপের একটি ডিবাগ বিল্ড যা প্রকৃত সত্যায়ন প্রদানকারীর পরিবর্তে অ্যাপ চেক ডিবাগ প্রদানকারী ব্যবহার করে।

ওয়েব অ্যাপে ডিবাগ প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করুন দেখুন।