আপনার এপিআই কী সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন।

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

অ্যাপ চেক কি আমার জন্য উপযুক্ত?

বেশিরভাগ ক্ষেত্রে অ্যাপ চেক করার পরামর্শ দেওয়া হয়, তবে নিম্নলিখিত ক্ষেত্রগুলিতে অ্যাপ চেকের প্রয়োজন নেই বা এটি সমর্থিত নয়:

  • আপনি মূল Places SDK ব্যবহার করছেন। অ্যাপ চেক শুধুমাত্র Places SDK (New)-এর জন্য সমর্থিত
  • ব্যক্তিগত বা পরীক্ষামূলক অ্যাপ। আপনার অ্যাপটি যদি সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হয়, তাহলে অ্যাপ চেকের প্রয়োজন নেই।
  • আপনার অ্যাপটি যদি শুধু সার্ভার-টু-সার্ভার ব্যবহৃত হয়, তাহলে অ্যাপ চেকের প্রয়োজন নেই। তবে, জিএমপি-র সাথে যোগাযোগকারী সার্ভারটি যদি পাবলিক ক্লায়েন্ট (যেমন মোবাইল অ্যাপ) ব্যবহার করে, তাহলে জিএমপি-র পরিবর্তে সেই সার্ভারটিকে সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করার কথা বিবেচনা করতে পারেন।

বাস্তবায়নের ধাপগুলোর সংক্ষিপ্ত বিবরণ

মোটামুটিভাবে, আপনার অ্যাপকে অ্যাপ চেক-এর সাথে সংযুক্ত করতে আপনাকে এই ধাপগুলো অনুসরণ করতে হবে:

  1. আপনার অ্যাপে Firebase যোগ করুন।
  2. অ্যাপ চেক লাইব্রেরিটি যোগ ও চালু করুন।
  3. আপনার অ্যাপে টোকেন প্রোভাইডারটি যোগ করুন।
  4. Places এবং App Check API-গুলো ইনিশিয়ালাইজ করুন।
  5. ডিবাগিং সক্ষম করুন।
  6. আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন এবং প্রয়োগের বিষয়ে সিদ্ধান্ত নিন।

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

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

অ্যাপ চেক ইন্টিগ্রেশন পরিকল্পনা করার সময় বিবেচ্য বিষয়সমূহ

আপনার ইন্টিগ্রেশনের পরিকল্পনা করার সময় এখানে কিছু বিষয় বিবেচনা করার জন্য দেওয়া হলো:

  • আমাদের সুপারিশকৃত অ্যাটেস্টেশন প্রদানকারী সংস্থাগুলোর মধ্যে একটি, reCAPTCHA Enterprise, প্রতি মাসে ১০,০০০-এর বেশি অ্যাসেসমেন্টের জন্য চার্জ করে।

    আমরা যে অন্য অ্যাটেস্টেশন প্রদানকারীটির সুপারিশ করি, সেই reCAPTCHA v3-এর একটি কোটা রয়েছে, যার পরে ট্র্যাফিক মূল্যায়ন করা হয় না।

    আপনি চাইলে একটি কাস্টম অ্যাটেস্টেশন প্রোভাইডার ব্যবহার করতে পারেন, যদিও এটি একটি অ্যাডভান্সড ব্যবহারের ক্ষেত্র। আরও তথ্যের জন্য অ্যাপ চেক ডকুমেন্টেশন দেখুন।

  • আপনার অ্যাপের ব্যবহারকারীরা অ্যাপ চালু হওয়ার সময় কিছুটা ল্যাটেন্সি অনুভব করবেন। তবে, এরপরে, যেকোনো পর্যায়ক্রমিক পুনঃ-অ্যাটেস্টেশন ব্যাকগ্রাউন্ডে সম্পন্ন হবে এবং ব্যবহারকারীরা আর কোনো ল্যাটেন্সি অনুভব করবেন না। অ্যাপ চালু হওয়ার সময় ল্যাটেন্সির সঠিক পরিমাণ নির্ভর করে আপনার নির্বাচিত অ্যাটেস্টেশন প্রোভাইডারের উপর।

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

আপনার অ্যাপকে অ্যাপ চেকের সাথে একীভূত করুন

পূর্বশর্ত এবং প্রয়োজনীয়তা

ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন

আপনার অ্যাপে Firebase যোগ করতে Firebase ডেভেলপার ডকুমেন্টেশনে দেওয়া নির্দেশাবলী অনুসরণ করুন।

ধাপ ২: অ্যাপ চেক লাইব্রেরি যোগ করুন এবং অ্যাপ চেক চালু করুন।

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

ধাপ ৩: ম্যাপস জেএস এপিআই লাইব্রেরিগুলো লোড করুন

  1. নিম্নলিখিত কোড স্নিপেটে দেখানো অনুযায়ী core, Maps, এবং Places লাইব্রেরিগুলো লোড করুন। আরও তথ্য ও নির্দেশাবলীর জন্য, Maps JavaScript API Place Class ডকুমেন্টেশন দেখুন।

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
      const {Place} = await google.maps.importLibrary('places');
    }  

ধাপ ৪: প্লেসেস এবং অ্যাপ চেক এপিআইগুলো ইনিশিয়ালাইজ করুন

  1. Firebase কনসোল থেকে প্রাপ্ত কনফিগারেশন ব্যবহার করে অ্যাপ চেক শুরু করুন।
  2. নিশ্চিত করুন যে Maps JS API-তে করা অনুরোধগুলোর সাথে App Check টোকেন সংযুক্ত থাকে:
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
        const {Place} = await google.maps.importLibrary('places');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Make a Places JS request
        const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'});
        await place.fetchFields({fields: ['*']});
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

ধাপ ৫: ডিবাগিং সক্ষম করুন (ঐচ্ছিক)

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

আপনার অ্যাপটি স্থানীয়ভাবে পরীক্ষা করতে:

  • উন্নয়নের উদ্দেশ্যে ডিবাগ প্রোভাইডারটি সক্রিয় করুন।
  • আপনি SDK-এর ডিবাগ লগ থেকে স্বয়ংক্রিয়ভাবে তৈরি একটি র‍্যান্ডম UUID4 পাবেন (অ্যাপ চেক ডকুমেন্টেশনে যাকে _ডিবাগ টোকেন_ বলা হয়)। এই টোকেনটি Firebase কনসোলে যোগ করুন।
  • আরও তথ্য ও নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।

আপনার অ্যাপটি CI পরিবেশে চালানোর জন্য:

  • ফায়ারবেস কনসোল থেকে একটি র‍্যান্ডম UUID4 তৈরি করুন।
  • UUID4-টিকে একটি ডিবাগ টোকেন হিসেবে যোগ করুন, এবং তারপর এটিকে একটি সিক্রেট স্টোরে কপি করুন, যেখানে CI টেস্টগুলো প্রতিটি টেস্ট রানের জন্য অ্যাক্সেস করবে।
  • আরও তথ্য ও নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।

ধাপ ৬: আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন এবং তা কার্যকর করার বিষয়ে সিদ্ধান্ত নিন।

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

আরও তথ্য ও নির্দেশাবলীর জন্য Firebase App Check ডকুমেন্টেশন দেখুন।