রিপোর্টিং API v1-এ স্থানান্তর করুন

রিপোর্টিং API এর একটি নতুন সংস্করণ উপলব্ধ। এটি আরও ব্যক্তিগত এবং ব্রাউজার জুড়ে সমর্থিত হওয়ার সম্ভাবনা বেশি।

মড নলপাস
Maud Nalpas

রিপোর্টিং এপিআই আপনাকে সেই ত্রুটি সম্পর্কে অবহিত করে যা দর্শকরা এটি ব্যবহার করার সময় আপনার সাইট জুড়ে ঘটে। এটি আপনাকে ব্রাউজার হস্তক্ষেপ, ব্রাউজার ক্র্যাশ, বিষয়বস্তু-নিরাপত্তা-নীতি লঙ্ঘন, COOP/COEP লঙ্ঘন, অবমূল্যায়ন সতর্কতা এবং আরও অনেক কিছুতে দৃশ্যমানতা দেয়৷

রিপোর্টিং API এর একটি নতুন সংস্করণ উপলব্ধ। নতুন এপিআই ক্ষীণ এবং ব্রাউজার জুড়ে সমর্থিত হওয়ার সম্ভাবনা বেশি।

সারাংশ

সাইট ডেভেলপার

আপনার যদি ইতিমধ্যেই আপনার সাইটের জন্য রিপোর্টিং কার্যকারিতা থাকে : নতুন হেডার ( Reporting-Endpoints ) ব্যবহার করে v1-এ স্থানান্তর করুন, তবে কিছু সময়ের জন্য লিগ্যাসি হেডারটি রাখুন ( Report-To )। মাইগ্রেশন দেখুন: উদাহরণ কোড

আপনি যদি এখনই আপনার সাইটে রিপোর্টিং কার্যকারিতা যোগ করেন : শুধুমাত্র নতুন শিরোনাম ব্যবহার করুন ( Reporting-Endpoints )।

⚠️ উভয় ক্ষেত্রেই, রিপোর্ট তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়াতে Reporting-Endpoints হেডার সেট করা নিশ্চিত করুন।

সেবা ডেভেলপারদের রিপোর্টিং

আপনি যদি একটি এন্ডপয়েন্ট সার্ভিস রক্ষণাবেক্ষণ করেন বা আপনার নিজের পরিচালনা করেন, আপনি বা বহিরাগত বিকাশকারীরা রিপোর্টিং API v1 ( Reporting-Endpoints হেডার) এ স্থানান্তরিত হওয়ার সাথে সাথে আরও ট্র্যাফিকের আশা করুন৷

বিস্তারিত এবং উদাহরণ কোডের জন্য পড়তে থাকুন!

নেটওয়ার্ক ত্রুটি লগিং

নেটওয়ার্ক ত্রুটি লগিংয়ের জন্য একটি নতুন প্রক্রিয়া তৈরি করা হবে। একবার এটি উপলব্ধ হয়ে গেলে, রিপোর্টিং API v0 থেকে সেই নতুন পদ্ধতিতে স্যুইচ করুন।

ডেমো এবং কোড

v0 এবং v1 এর মধ্যে পার্থক্য

কি পরিবর্তন হচ্ছে

  • API পৃষ্ঠ ভিন্ন।
v0 (উত্তরাধিকার)
 Report-To: { group: "main-endpoint", "max_age": 86400, "endpoints": [ { "url": ... }, { "url": ... }] }, { group: "default-endpoint", "max_age": 86400, "endpoints": [ { "url": ... }, { "url": ... }] }
 Document-Policy: ...; report-to main-endpoint

{0 নামকৃত এন্ডপয়েন্ট গ্রুপ কনফিগার করতে Report-To হেডার ব্যবহার করে, এবং এই এন্ডপয়েন্ট গ্রুপগুলিকে রেফারেন্স করতে অন্যান্য হেডারে report-to নির্দেশিকা ব্যবহার করে।

v1 (নতুন)
 Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"
 Document-Policy: ...; report-to main-endpoint

v1 নামকৃত এন্ডপয়েন্ট কনফিগার করতে Reporting-Endpoints হেডার ব্যবহার করে। v0 এর মতো, এটি অন্যান্য শিরোনামগুলিতে report-to নির্দেশিকা ব্যবহার করে এই শেষপয়েন্ট গ্রুপগুলিকে উল্লেখ করতে।

  • প্রতিবেদনের পরিধি ভিন্ন।
v0 (উত্তরাধিকার)

v0 দিয়ে, আপনি শুধুমাত্র কিছু প্রতিক্রিয়ার জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারেন। সেই মূলের অন্যান্য নথি (পৃষ্ঠা) স্বয়ংক্রিয়ভাবে এই পরিবেষ্টিত শেষ পয়েন্টগুলি ব্যবহার করবে।

v1 (নতুন)

v1 এর সাথে, আপনাকে প্রতিবেদন তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়ার উপর Reporting-Endpoints হেডার সেট করতে হবে।

  • উভয় APIই একই ধরনের রিপোর্ট সমর্থন করে, একটি ব্যতিক্রম সহ: v1 নেটওয়ার্ক ত্রুটি রিপোর্ট সমর্থন করে না। মাইগ্রেশন ধাপে আরও পড়ুন।
  • v0 ব্রাউজার জুড়ে সমর্থিত নয় এবং হবে না। v1 ভবিষ্যতে একাধিক ব্রাউজারে সমর্থিত হওয়ার সম্ভাবনা বেশি।

যা অপরিবর্তিত থাকে

  • প্রতিবেদনের বিন্যাস এবং গঠন অপরিবর্তিত।
  • ব্রাউজার দ্বারা এন্ডপয়েন্টে পাঠানো অনুরোধটি Content-type application/reports+json এর একটি POST অনুরোধ হিসেবে রয়ে গেছে।
  • নির্দিষ্ট প্রতিবেদনের প্রকারে নির্দিষ্ট প্রান্তের ম্যাপিং v0 এবং v1 উভয় ক্ষেত্রেই সমর্থিত।
  • default এন্ডপয়েন্টের ভূমিকা অপরিবর্তিত থাকে।
  • Reporting API v1-এর ReportingObserver এ কোন প্রভাব নেই। ReportingObserver সমস্ত পর্যবেক্ষণযোগ্য প্রতিবেদনে অ্যাক্সেস পেতে থাকে এবং তাদের বিন্যাস অভিন্ন।

v0 এবং v1 এর মধ্যে সমস্ত পার্থক্য

লিগ্যাসি রিপোর্টিং API (v0)
Report-To হেডার
নতুন রিপোর্টিং API (v1)
Reporting-Endpoints হেডার
ব্রাউজার সমর্থন Chrome 69+ এবং Edge 69+। Chrome 96+ এবং Edge 96+। ফায়ারফক্স সহায়ক। সাফারি আপত্তি করে না। ব্রাউজার সংকেত দেখুন।
শেষবিন্দু একাধিক রিপোর্ট সংগ্রাহকদের (এন্ডপয়েন্ট গ্রুপ প্রতি একাধিক ইউআরএল সংজ্ঞায়িত) রিপোর্ট পাঠায়। নির্দিষ্ট রিপোর্ট সংগ্রাহকদের কাছে রিপোর্ট পাঠায় (এন্ডপয়েন্ট প্রতি শুধুমাত্র একটি ইউআরএল সংজ্ঞায়িত)।
API পৃষ্ঠ নামযুক্ত এন্ডপয়েন্ট গ্রুপ কনফিগার করতে `Report-To` হেডার ব্যবহার করে। নামযুক্ত শেষ পয়েন্ট কনফিগার করতে `Reporting-Endpoints` হেডার ব্যবহার করে।
প্রতিবেদনের প্রকারগুলি যা এই API এর মাধ্যমে তৈরি করা যেতে পারে
  • অবচয়
  • হস্তক্ষেপ
  • ক্রাশ
  • COOP/COEP
  • বিষয়বস্তু-নিরাপত্তা-নীতি স্তর 3 (CSP স্তর 3)
  • নেটওয়ার্ক ত্রুটি লগিং (NEL)
রিপোর্টিং এপিআই পোস্টে রিপোর্টের ধরন সম্পর্কে আরও জানুন।
নেটওয়ার্ক ত্রুটি লগিং (NEL) ব্যতীত অপরিবর্তিত: এটি নতুন রিপোর্টিং API (v1) তে সমর্থিত নয়
প্রতিবেদনের সুযোগ উৎপত্তি।
একটি নথির Report-To শিরোনাম সেই উত্স থেকে অন্যান্য নথি (পৃষ্ঠাগুলি) প্রভাবিত করে। একটি প্রতিবেদনের url ক্ষেত্র এখনও প্রতি নথিতে পরিবর্তিত হয়।
দলিল।
একটি নথির Reporting-Endpoints হেডার শুধুমাত্র সেই নথিকে প্রভাবিত করে৷ একটি প্রতিবেদনের url ক্ষেত্র এখনও প্রতি নথিতে পরিবর্তিত হয়।
রিপোর্ট বিচ্ছিন্নতা (ব্যাচিং) বিভিন্ন দস্তাবেজ (পৃষ্ঠা) বা সাইট/উৎস যেগুলি একই সময়ে একটি প্রতিবেদন তৈরি করে এবং যেগুলির একই রিপোর্টিং এন্ডপয়েন্ট রয়েছে তাদের একসাথে ব্যাচ করা হবে: সেগুলি রিপোর্টিং এন্ডপয়েন্টে একই বার্তায় পাঠানো হবে৷
  • বিভিন্ন নথি (পৃষ্ঠা) থেকে রিপোর্ট একসাথে পাঠানো হয় না. এমনকি যদি একই উত্স থেকে দুটি নথি (পৃষ্ঠা) একই সময়ে একটি প্রতিবেদন তৈরি করে, একই শেষ পয়েন্টের জন্য, সেগুলি ব্যাচ করা হবে না। এটি গোপনীয়তা আক্রমণ প্রশমিত করার একটি পদ্ধতি।
  • একই নথি (পৃষ্ঠা) থেকে রিপোর্ট একসাথে পাঠানো যেতে পারে।
লোড ব্যালেন্সিং / অগ্রাধিকারের জন্য সমর্থন হ্যাঁ না

এন্ডপয়েন্ট ডেভেলপার: আরও ট্রাফিক আশা করুন

আপনি যদি একটি রিপোর্টিং এন্ডপয়েন্ট হিসাবে আপনার নিজস্ব সার্ভার সেট আপ করে থাকেন, অথবা যদি আপনি একটি পরিষেবা হিসাবে একটি রিপোর্ট সংগ্রাহক ডেভেলপ বা বজায় রাখেন, তাহলে সেই এন্ডপয়েন্টে আরও ট্রাফিক আশা করুন৷

কারণ রিপোর্টগুলি রিপোর্টিং API v1 এর সাথে ব্যাচ করা হয় না যেমনটি রিপোর্টিং API v0 এর সাথে থাকে। অতএব, অ্যাপ্লিকেশন বিকাশকারীরা রিপোর্টিং API v1-এ স্থানান্তরিত করা শুরু করলে, রিপোর্টের সংখ্যা একই রকম থাকবে, কিন্তু শেষ পয়েন্ট সার্ভারে অনুরোধের পরিমাণ বৃদ্ধি পাবে।

অ্যাপ্লিকেশন ডেভেলপার: Reporting-Endpoints স্থানান্তর করুন (v1)

আপনার কি করা উচিত?

নতুন রিপোর্টিং API (v1) ব্যবহার করে বেশ কিছু সুবিধা রয়েছে ✅:

  • ব্রাউজার সিগন্যাল ইতিবাচক , যার অর্থ হল ক্রস-ব্রাউজার সমর্থন v1-এর জন্য আশা করা যেতে পারে (v0 এর বিপরীতে যা শুধুমাত্র Chrome এবং Edge-এ সমর্থিত)।
  • এপিআই ক্ষীণ।
  • নতুন রিপোর্টিং API (v1) এর চারপাশে টুলিং তৈরি করা হচ্ছে।

এটি মাথায় রেখে:

  • যদি আপনার সাইট ইতিমধ্যেই Report-To শিরোনামের সাথে Reporting API v0 ব্যবহার করে, তাহলে Reporting API v1-এ স্থানান্তর করুন ( মাইগ্রেশনের ধাপগুলি দেখুন)। আপনার সাইট যদি ইতিমধ্যেই বিষয়বস্তু-নিরাপত্তা-নীতি লঙ্ঘনের জন্য রিপোর্টিং কার্যকারিতা ব্যবহার করে, তাহলে CSP রিপোর্টিংয়ের জন্য নির্দিষ্ট মাইগ্রেশন পদক্ষেপগুলি পরীক্ষা করুন৷
  • যদি আপনার সাইট ইতিমধ্যে রিপোর্টিং API ব্যবহার না করে এবং আপনি এখন রিপোর্টিং কার্যকারিতা যোগ করছেন: নতুন রিপোর্টিং API (v1) ( Reporting-Endpoints হেডার) ব্যবহার করুন। এর একটি ব্যতিক্রম আছে : যদি আপনার নেটওয়ার্ক ত্রুটি লগিং ব্যবহার করতে হয়, Report-To (v0) ব্যবহার করুন। নেটওয়ার্ক ত্রুটি লগিং বর্তমানে রিপোর্টিং API v1-এ সমর্থিত নয়৷ নেটওয়ার্ক ত্রুটি লগিং এর জন্য একটি নতুন প্রক্রিয়া তৈরি করা হবে⏤ যতক্ষণ না এটি উপলব্ধ হয়, রিপোর্টিং API v0 ব্যবহার করুন৷ আপনার যদি অন্যান্য রিপোর্টের ধরনগুলির সাথে নেটওয়ার্ক ত্রুটি লগিং প্রয়োজন হয়, Report-To (v0) এবং Reporting-Endpoints (v1) উভয়ই ব্যবহার করুন। v0 আপনাকে নেটওয়ার্ক ত্রুটি লগিং দেয় এবং v1 আপনাকে অন্য সব ধরনের রিপোর্ট দেয়।

মাইগ্রেশন পদক্ষেপ

এই মাইগ্রেশনে আপনার লক্ষ্য হল v0 এর সাথে আপনি যে রিপোর্টগুলি পেতেন সেগুলি না হারানো

  1. ধাপ 1 (এখন করুন) : উভয় শিরোনাম ব্যবহার করুন: Report-To (v0) এবং Reporting-Endpoints (v1)।

    এর সাথে, আপনি পাবেন:

    • Reporting-Endpoints (v1) এর জন্য নতুন Chrome এবং Edge ক্লায়েন্টদের থেকে রিপোর্টগুলিকে ধন্যবাদ৷
    • পুরানো ক্রোম এবং এজ ক্লায়েন্টদের থেকে রিপোর্ট Report-To (v0) কে ধন্যবাদ।

    যে ব্রাউজার দৃষ্টান্তগুলি Reporting-Endpoints সমর্থন করে সেগুলি Reporting-Endpoints ব্যবহার করবে, এবং যে দৃষ্টান্তগুলি Report-To তে ফিরে আসবে না৷ অনুরোধ এবং প্রতিবেদনের বিন্যাস v0 এবং v1 এর জন্য একই।

  2. ধাপ 2 (এখন করুন): Reporting-Endpoints শিরোনামটি রিপোর্ট তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়াতে সেট করা আছে তা নিশ্চিত করুন।

    v0 দিয়ে, আপনি শুধুমাত্র কিছু প্রতিক্রিয়ার উপর রিপোর্টিং এন্ডপয়েন্ট সেট করতে বেছে নিতে পারেন এবং সেই মূলের অন্যান্য নথি (পৃষ্ঠা) এই "পরিবেষ্টিত" এন্ডপয়েন্ট ব্যবহার করবে। v1 এর সাথে, স্কোপিংয়ের পার্থক্যের কারণে, আপনাকে রিপোর্ট তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়ার উপর Reporting-Endpoints হেডার সেট করতে হবে।

  3. ধাপ 3 (পরে শুরু করুন): একবার আপনার সমস্ত বা অধিকাংশ ব্যবহারকারীর পরবর্তী Chrome বা এজ ইনস্টলে (96 এবং পরবর্তী) আপডেট হয়ে গেলে, Report-To (v0) সরান এবং শুধুমাত্র Reporting-Endpoints রাখুন।

    একটি ব্যতিক্রম: যদি আপনার নেটওয়ার্ক ত্রুটি লগিং প্রতিবেদনের প্রয়োজন হয়, নেটওয়ার্ক ত্রুটি লগিং এর জন্য একটি নতুন প্রক্রিয়া না হওয়া পর্যন্ত Report-To রাখুন।

মাইগ্রেশন কুকবুকে কোডের উদাহরণ দেখুন।

CSP রিপোর্টিং এর জন্য মাইগ্রেশন পদক্ষেপ

দুটি উপায়ে বিষয়বস্তু-নিরাপত্তা-নীতি লঙ্ঘন প্রতিবেদন কনফিগার করা যেতে পারে:

  • report-uri নির্দেশের মাধ্যমে একা সিএসপি হেডারের সাথে। এটি ক্রোম, ফায়ারফক্স, সাফারি এবং এজ জুড়ে বিস্তৃত ব্রাউজার সমর্থন রয়েছে। প্রতিবেদনগুলি বিষয়বস্তু-প্রকার application/csp-report সাথে পাঠানো হয় এবং CSP-এর জন্য নির্দিষ্ট একটি বিন্যাস থাকে। এই রিপোর্টগুলিকে "CSP লেভেল 2 রিপোর্ট" বলা হয় এবং রিপোর্টিং API এর উপর নির্ভর করে না
  • রিপোর্টিং এপিআই-এর সাথে, এটি Report-To হেডার (লেগ্যাসি) বা নতুন Reporting-Endpoints (v1) এর মাধ্যমে। এটি শুধুমাত্র Chrome এবং Edge-এ সমর্থিত। প্রতিবেদনের অনুরোধগুলির অন্যান্য রিপোর্টিং API অনুরোধগুলির মতো একই বিন্যাস এবং একই বিষয়বস্তু-প্রকার application/reports+json

প্রথম পদ্ধতি ব্যবহার করা (শুধুমাত্র report-uri ) আর সুপারিশ করা হয় না এবং দ্বিতীয় পদ্ধতি ব্যবহার করার কিছু সুবিধা রয়েছে। বিশেষ করে, এটি আপনাকে সমস্ত রিপোর্টের ধরনগুলির জন্য রিপোর্টিং সেট আপ করার পাশাপাশি একটি জেনেরিক এন্ডপয়েন্ট সেট করার জন্য একটি একক উপায় ব্যবহার করতে সক্ষম করে (কারণ রিপোর্টিং API⏤CSP এবং অন্যদের⏤ একই ফর্ম্যাট application/reports+json মাধ্যমে উত্পন্ন সমস্ত রিপোর্ট অনুরোধ রয়েছে application/reports+json

যাইহোক, শুধুমাত্র কয়েকটি ব্রাউজার report-to সমর্থন করে । তাই একাধিক ব্রাউজার থেকে CSP লঙ্ঘনের রিপোর্ট পাওয়ার জন্য আপনাকে Reporting API অ্যাপ্রোচ ( Report-To বা ভাল, Reporting-Endpoints ) এর পাশাপাশি report-uri রাখার পরামর্শ দেওয়া হচ্ছে। একটি ব্রাউজারে যা report-uri এবং report-to স্বীকৃতি দেয়, report-to উপস্থিত থাকলে report-uri উপেক্ষা করা হবে। একটি ব্রাউজারে যা শুধুমাত্র report-uri স্বীকৃতি দেয়, শুধুমাত্র report-uri বিবেচনা করা হবে।

  1. ধাপ 1 (এখন করুন) : আপনি যদি এটি এখনও যোগ না করে থাকেন, তাহলে রিপোর্ট- report-uri পাশাপাশি report-to যোগ করুন। যেসব ব্রাউজার শুধুমাত্র report-uri (ফায়ারফক্স) সমর্থন করে তারা report-uri ব্যবহার করবে এবং যে ব্রাউজারগুলি report-to (Chrome, Edge) সমর্থন করে তারা report-to ব্যবহার করবে। report-to এ আপনি যে নামযুক্ত শেষ পয়েন্টগুলি ব্যবহার করবেন তা নির্দিষ্ট করতে, Report-To এবং Reporting-Endpoints উভয় শিরোনাম ব্যবহার করুন। এটি নিশ্চিত করে যে আপনি পুরানো এবং নতুন উভয় ক্রোম এবং এজ ক্লায়েন্টদের কাছ থেকে রিপোর্ট পাবেন৷

  2. ধাপ 3 (পরে শুরু করুন): একবার আপনার সমস্ত বা অধিকাংশ ব্যবহারকারীর পরবর্তী Chrome বা এজ ইনস্টলে (96 এবং পরবর্তী) আপডেট হয়ে গেলে, Report-To (v0) সরান এবং শুধুমাত্র Reporting-Endpoints রাখুন। report-uri রাখুন যাতে আপনি এখনও ব্রাউজারগুলির জন্য রিপোর্ট পান যা শুধুমাত্র এটি সমর্থন করে।

CSP রিপোর্টিং মাইগ্রেশনের এই ধাপগুলির জন্য কোড উদাহরণ দেখুন।

মাইগ্রেশন: উদাহরণ কোড

ওভারভিউ

আপনি যদি aa COOP ( Cross-Origin-Opener-Policy হেডার), একটি COEP ( Cross-Origin-Embedder-Policy ) বা একটি ডকুমেন্ট পলিসি ( Document-Policy হেডার) এর লঙ্ঘন প্রতিবেদন পেতে লিগ্যাসি রিপোর্টিং API (v0) ব্যবহার করেন ): আপনি রিপোর্টিং API v1-এ স্থানান্তরিত হওয়ার সাথে সাথে আপনাকে এই নীতি শিরোনামগুলিকে পরিবর্তন করতে হবে না। আপনার যা প্রয়োজন তা হল লিগ্যাসি Report-To হেডার থেকে নতুন Reporting-Endpoints হেডারে স্থানান্তর করা।

আপনি যদি একটি CSP ( Content-Security-Policy শিরোনাম) এর জন্য লঙ্ঘন প্রতিবেদন পেতে লিগ্যাসি রিপোর্টিং API (v0) ব্যবহার করেন, তাহলে আপনাকে নতুন রিপোর্টিং API (এপিআই) তে স্থানান্তরের অংশ হিসাবে আপনার Content-Security-Policy পরিবর্তন করতে হতে পারে v1)।

বেসিক মাইগ্রেশন

লিগ্যাসি কোড (v0 সহ)
Report-To: { group: "main-endpoint", "endpoints": [ { "url": "https://reports.example/main" }] }, { group: "default-endpoint", "endpoints": [ { "url": "https://reports.example/default" }] }
নতুন কোড (v1 এর পাশাপাশি v0 সহ ট্রানজিশন কোড)
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"
Report-To: { group: "main-endpoint", "max_age": 86400, "endpoints": [ { "url": "https://reports.example/main" }] }, { group: "default-endpoint", "max_age": 86400, "endpoints": [ { "url": "https://reports.example/default" }] }

যদি আপনার সাইটে ইতিমধ্যেই রিপোর্টিং কার্যকারিতা থাকে, রিপোর্ট হারানো এড়াতে শুধুমাত্র সাময়িকভাবে (বেশিরভাগ Chrome এবং এজ ক্লায়েন্ট আপডেট না হওয়া পর্যন্ত) Report-To রাখুন।

আপনার যদি নেটওয়ার্ক ত্রুটি লগিং প্রয়োজন হয়, নেটওয়ার্ক ত্রুটি লগিং প্রতিস্থাপন উপলব্ধ না হওয়া পর্যন্ত Report-To রাখুন।

নতুন কোড (শুধুমাত্র v1 সহ)
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"

বেশিরভাগ ক্রোম এবং এজ ক্লায়েন্ট আপডেট হয়ে গেলে এবং API v1 সমর্থন করলে ভবিষ্যতে আপনার কোডটি এরকম দেখতে পারে।

মনে রাখবেন যে v1 দিয়ে, আপনি এখনও নির্দিষ্ট রিপোর্টের ধরন নির্দিষ্ট প্রান্তে পাঠাতে পারেন। কিন্তু প্রতি এন্ডপয়েন্টে আপনার শুধুমাত্র একটি ইউআরএল থাকতে পারে।

সব পৃষ্ঠা পর্যবেক্ষণ

লিগ্যাসি কোড (v0 সহ), উদাহরণস্বরূপ এক্সপ্রেসের সাথে
app.get("/", (request, response) => {
  response.set("Report-To", )
  response.render(...)
});
app.get("/page1", (request, response) => {
  response.render(...)
});

v0 দিয়ে, আপনি শুধুমাত্র কিছু প্রতিক্রিয়ার জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারেন। সেই মূলের অন্যান্য নথি (পৃষ্ঠা) স্বয়ংক্রিয়ভাবে এই পরিবেষ্টিত শেষ পয়েন্টগুলি ব্যবহার করে। এখানে, "/" এর জন্য সেট করা শেষ পয়েন্টগুলি সমস্ত প্রতিক্রিয়ার জন্য ব্যবহার করা হয়, উদাহরণস্বরূপ page1 এর জন্য।

নতুন কোড (v1 সহ), উদাহরণস্বরূপ এক্সপ্রেসের সাথে
// Use a middleware to set the reporting endpoint(s) for *all* requests.
app.use(function(request, response, next) {
  response.set("Reporting-Endpoints", );
  next();
});

app.get("/", (request, response) => {
  response.render(...)
});

app.get("/page1", (request, response) => {
  response.render(...)
});

v1 এর সাথে, আপনাকে প্রতিবেদন তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়ার উপর Reporting-Endpoints হেডার সেট করতে হবে।

CSP রিপোর্টিং মাইগ্রেশন

উত্তরাধিকার কোড, শুধুমাত্র রিপোর্ট-ইউরি সহ
Content-Security-Policy: ...; report-uri https://reports.example/main

শুধুমাত্র report-uri ব্যবহার করা আর সুপারিশ করা হয় না । আপনার কোড উপরের মত দেখায়, মাইগ্রেট. নীচের নতুন কোড উদাহরণ দেখুন (সবুজ)।

রিপোর্ট-উরি এবং রিপোর্ট-টু (v0) হেডার সহ রিপোর্ট-টু নির্দেশ সহ আরও ভাল উত্তরাধিকার কোড
Content-Security-Policy: ...; report-uri https://reports.example/main; report-to main-endpoint
Report-To: main-endpoint="https://reports.example/main"

এটি আরও ভাল: এই কোডটি রিপোর্ট-টু ব্যবহার করে, রিপোর্ট-উরির নতুন প্রতিস্থাপন। এটি এখনও পিছনের সামঞ্জস্যের জন্য রিপোর্ট-ইউরি রাখে; অনেক ব্রাউজার report-to সমর্থন করে না কিন্তু report-uri সমর্থন করে।

তবুও, এটি আরও ভাল হতে পারে: এই কোডগুলি রিপোর্টিং API v0 ( Report-To হেডার) ব্যবহার করে। v1-এ স্থানান্তর করুন: নীচে 'নতুন কোড' উদাহরণ দেখুন (সবুজ রঙে)।

রিপোর্ট-উরি এবং রিপোর্টিং-এন্ডপয়েন্টস (v1) হেডার সহ রিপোর্ট-টু নির্দেশ সহ নতুন কোড
Content-Security-Policy: ...; report-uri https://reports.example/main; report-to main-endpoint
Reporting-Endpoints: main-endpoint="https://reports.example/main"
Report-To: ...

report-uri নির্দেশিকা বরাবর report-to নির্দেশিকা রাখুন যতক্ষণ না report-to নির্দেশিকা ব্রাউজার জুড়ে সমর্থিত হয়। ব্রাউজার সামঞ্জস্য টেবিল দেখুন.

Reporting-Endpoints সাথে সাময়িকভাবে Report-To রাখুন। একবার আপনার Chrome এবং Edge দর্শকদের বেশিরভাগ 96+ ব্রাউজার সংস্করণে আপগ্রেড হয়ে গেলে, Report-To সরান৷

আরও পড়া

এই নিবন্ধে তাদের পর্যালোচনা এবং পরামর্শের জন্য ইয়ান ক্লেল্যান্ড, ইজি কিতামুরা এবং মিলিকা মিহাজলিজাকে অনেক ধন্যবাদ।

,

রিপোর্টিং API এর একটি নতুন সংস্করণ উপলব্ধ। এটি আরও ব্যক্তিগত এবং ব্রাউজার জুড়ে সমর্থিত হওয়ার সম্ভাবনা বেশি।

মড নলপাস
Maud Nalpas

রিপোর্টিং এপিআই আপনাকে সেই ত্রুটি সম্পর্কে অবহিত করে যা দর্শকরা এটি ব্যবহার করার সময় আপনার সাইট জুড়ে ঘটে। এটি আপনাকে ব্রাউজার হস্তক্ষেপ, ব্রাউজার ক্র্যাশ, বিষয়বস্তু-নিরাপত্তা-নীতি লঙ্ঘন, COOP/COEP লঙ্ঘন, অবমূল্যায়ন সতর্কতা এবং আরও অনেক কিছুতে দৃশ্যমানতা দেয়৷

রিপোর্টিং API এর একটি নতুন সংস্করণ উপলব্ধ। নতুন এপিআই ক্ষীণ এবং ব্রাউজার জুড়ে সমর্থিত হওয়ার সম্ভাবনা বেশি।

সারাংশ

সাইট ডেভেলপার

আপনার যদি ইতিমধ্যেই আপনার সাইটের জন্য রিপোর্টিং কার্যকারিতা থাকে : নতুন হেডার ( Reporting-Endpoints ) ব্যবহার করে v1-এ স্থানান্তর করুন, তবে কিছু সময়ের জন্য লিগ্যাসি হেডারটি রাখুন ( Report-To )। মাইগ্রেশন দেখুন: উদাহরণ কোড

আপনি যদি এখনই আপনার সাইটে রিপোর্টিং কার্যকারিতা যোগ করেন : শুধুমাত্র নতুন শিরোনাম ব্যবহার করুন ( Reporting-Endpoints )।

⚠️ উভয় ক্ষেত্রেই, রিপোর্ট তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়াতে Reporting-Endpoints হেডার সেট করা নিশ্চিত করুন।

সেবা ডেভেলপারদের রিপোর্টিং

আপনি যদি একটি এন্ডপয়েন্ট সার্ভিস রক্ষণাবেক্ষণ করেন বা আপনার নিজের পরিচালনা করেন, আপনি বা বহিরাগত বিকাশকারীরা রিপোর্টিং API v1 ( Reporting-Endpoints হেডার) এ স্থানান্তরিত হওয়ার সাথে সাথে আরও ট্র্যাফিকের আশা করুন৷

বিস্তারিত এবং উদাহরণ কোডের জন্য পড়তে থাকুন!

নেটওয়ার্ক ত্রুটি লগিং

নেটওয়ার্ক ত্রুটি লগিংয়ের জন্য একটি নতুন প্রক্রিয়া তৈরি করা হবে। একবার এটি উপলব্ধ হয়ে গেলে, রিপোর্টিং API v0 থেকে সেই নতুন পদ্ধতিতে স্যুইচ করুন।

ডেমো এবং কোড

v0 এবং v1 এর মধ্যে পার্থক্য

কি পরিবর্তন হচ্ছে

  • API পৃষ্ঠ ভিন্ন।
v0 (উত্তরাধিকার)
 Report-To: { group: "main-endpoint", "max_age": 86400, "endpoints": [ { "url": ... }, { "url": ... }] }, { group: "default-endpoint", "max_age": 86400, "endpoints": [ { "url": ... }, { "url": ... }] }
 Document-Policy: ...; report-to main-endpoint

{0 নামকৃত এন্ডপয়েন্ট গ্রুপ কনফিগার করতে Report-To হেডার ব্যবহার করে, এবং এই এন্ডপয়েন্ট গ্রুপগুলিকে রেফারেন্স করতে অন্যান্য হেডারে report-to নির্দেশিকা ব্যবহার করে।

v1 (নতুন)
 Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"
 Document-Policy: ...; report-to main-endpoint

v1 নামকৃত এন্ডপয়েন্ট কনফিগার করতে Reporting-Endpoints হেডার ব্যবহার করে। v0 এর মতো, এটি অন্যান্য শিরোনামগুলিতে report-to নির্দেশিকা ব্যবহার করে এই শেষপয়েন্ট গ্রুপগুলিকে উল্লেখ করতে।

  • প্রতিবেদনের পরিধি ভিন্ন।
v0 (উত্তরাধিকার)

v0 দিয়ে, আপনি শুধুমাত্র কিছু প্রতিক্রিয়ার জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারেন। সেই মূলের অন্যান্য নথি (পৃষ্ঠা) স্বয়ংক্রিয়ভাবে এই পরিবেষ্টিত শেষ পয়েন্টগুলি ব্যবহার করবে।

v1 (নতুন)

v1 এর সাথে, আপনাকে প্রতিবেদন তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়ার উপর Reporting-Endpoints হেডার সেট করতে হবে।

  • উভয় APIই একই ধরনের রিপোর্ট সমর্থন করে, একটি ব্যতিক্রম সহ: v1 নেটওয়ার্ক ত্রুটি রিপোর্ট সমর্থন করে না। মাইগ্রেশন ধাপে আরও পড়ুন।
  • v0 ব্রাউজার জুড়ে সমর্থিত নয় এবং হবে না। v1 ভবিষ্যতে একাধিক ব্রাউজারে সমর্থিত হওয়ার সম্ভাবনা বেশি।

যা অপরিবর্তিত থাকে

  • প্রতিবেদনের বিন্যাস এবং গঠন অপরিবর্তিত।
  • ব্রাউজার দ্বারা এন্ডপয়েন্টে পাঠানো অনুরোধটি Content-type application/reports+json এর একটি POST অনুরোধ হিসেবে রয়ে গেছে।
  • নির্দিষ্ট প্রতিবেদনের প্রকারে নির্দিষ্ট প্রান্তের ম্যাপিং v0 এবং v1 উভয় ক্ষেত্রেই সমর্থিত।
  • default এন্ডপয়েন্টের ভূমিকা অপরিবর্তিত থাকে।
  • Reporting API v1-এর ReportingObserver এ কোন প্রভাব নেই। ReportingObserver সমস্ত পর্যবেক্ষণযোগ্য প্রতিবেদনে অ্যাক্সেস পেতে থাকে এবং তাদের বিন্যাস অভিন্ন।

v0 এবং v1 এর মধ্যে সমস্ত পার্থক্য

লিগ্যাসি রিপোর্টিং API (v0)
Report-To হেডার
নতুন রিপোর্টিং API (v1)
Reporting-Endpoints হেডার
ব্রাউজার সমর্থন Chrome 69+ এবং Edge 69+। Chrome 96+ এবং Edge 96+। ফায়ারফক্স সহায়ক। সাফারি আপত্তি করে না। ব্রাউজার সংকেত দেখুন।
শেষবিন্দু একাধিক রিপোর্ট সংগ্রাহকদের (এন্ডপয়েন্ট গ্রুপ প্রতি একাধিক ইউআরএল সংজ্ঞায়িত) রিপোর্ট পাঠায়। নির্দিষ্ট রিপোর্ট সংগ্রাহকদের কাছে রিপোর্ট পাঠায় (এন্ডপয়েন্ট প্রতি শুধুমাত্র একটি ইউআরএল সংজ্ঞায়িত)।
API পৃষ্ঠ নামযুক্ত এন্ডপয়েন্ট গ্রুপ কনফিগার করতে `Report-To` হেডার ব্যবহার করে। নামযুক্ত শেষ পয়েন্ট কনফিগার করতে `Reporting-Endpoints` হেডার ব্যবহার করে।
প্রতিবেদনের প্রকারগুলি যা এই API এর মাধ্যমে তৈরি করা যেতে পারে
  • অবচয়
  • হস্তক্ষেপ
  • ক্রাশ
  • COOP/COEP
  • বিষয়বস্তু-নিরাপত্তা-নীতি স্তর 3 (CSP স্তর 3)
  • নেটওয়ার্ক ত্রুটি লগিং (NEL)
রিপোর্টিং এপিআই পোস্টে রিপোর্টের ধরন সম্পর্কে আরও জানুন।
নেটওয়ার্ক ত্রুটি লগিং (NEL) ব্যতীত অপরিবর্তিত: এটি নতুন রিপোর্টিং API (v1) তে সমর্থিত নয়
প্রতিবেদনের সুযোগ উৎপত্তি।
একটি নথির Report-To শিরোনাম সেই উত্স থেকে অন্যান্য নথি (পৃষ্ঠাগুলি) প্রভাবিত করে। একটি প্রতিবেদনের url ক্ষেত্র এখনও প্রতি নথিতে পরিবর্তিত হয়।
দলিল।
একটি নথির Reporting-Endpoints হেডার শুধুমাত্র সেই নথিকে প্রভাবিত করে৷ একটি প্রতিবেদনের url ক্ষেত্র এখনও প্রতি নথিতে পরিবর্তিত হয়।
রিপোর্ট বিচ্ছিন্নতা (ব্যাচিং) বিভিন্ন দস্তাবেজ (পৃষ্ঠা) বা সাইট/উৎস যেগুলি একই সময়ে একটি প্রতিবেদন তৈরি করে এবং যেগুলির একই রিপোর্টিং এন্ডপয়েন্ট রয়েছে তাদের একসাথে ব্যাচ করা হবে: সেগুলি রিপোর্টিং এন্ডপয়েন্টে একই বার্তায় পাঠানো হবে৷
  • বিভিন্ন নথি (পৃষ্ঠা) থেকে রিপোর্ট একসাথে পাঠানো হয় না. এমনকি যদি একই উত্স থেকে দুটি নথি (পৃষ্ঠা) একই সময়ে একটি প্রতিবেদন তৈরি করে, একই শেষ পয়েন্টের জন্য, সেগুলি ব্যাচ করা হবে না। এটি গোপনীয়তা আক্রমণ প্রশমিত করার একটি পদ্ধতি।
  • একই নথি (পৃষ্ঠা) থেকে রিপোর্ট একসাথে পাঠানো যেতে পারে।
লোড ব্যালেন্সিং / অগ্রাধিকারের জন্য সমর্থন হ্যাঁ না

এন্ডপয়েন্ট ডেভেলপার: আরও ট্রাফিক আশা করুন

আপনি যদি একটি রিপোর্টিং এন্ডপয়েন্ট হিসাবে আপনার নিজস্ব সার্ভার সেট আপ করে থাকেন, অথবা যদি আপনি একটি পরিষেবা হিসাবে একটি রিপোর্ট সংগ্রাহক ডেভেলপ বা বজায় রাখেন, তাহলে সেই এন্ডপয়েন্টে আরও ট্রাফিক আশা করুন৷

কারণ রিপোর্টগুলি রিপোর্টিং API v1 এর সাথে ব্যাচ করা হয় না যেমনটি রিপোর্টিং API v0 এর সাথে থাকে। অতএব, অ্যাপ্লিকেশন বিকাশকারীরা রিপোর্টিং API v1-এ স্থানান্তরিত করা শুরু করলে, রিপোর্টের সংখ্যা একই রকম থাকবে, কিন্তু শেষ পয়েন্ট সার্ভারে অনুরোধের পরিমাণ বৃদ্ধি পাবে।

অ্যাপ্লিকেশন ডেভেলপার: Reporting-Endpoints স্থানান্তর করুন (v1)

আপনার কি করা উচিত?

নতুন রিপোর্টিং API (v1) ব্যবহার করে বেশ কিছু সুবিধা রয়েছে ✅:

  • ব্রাউজার সিগন্যাল ইতিবাচক , যার অর্থ হল ক্রস-ব্রাউজার সমর্থন v1-এর জন্য আশা করা যেতে পারে (v0 এর বিপরীতে যা শুধুমাত্র Chrome এবং Edge-এ সমর্থিত)।
  • এপিআই ক্ষীণ।
  • নতুন রিপোর্টিং API (v1) এর চারপাশে টুলিং তৈরি করা হচ্ছে।

এটি মাথায় রেখে:

  • যদি আপনার সাইট ইতিমধ্যেই Report-To শিরোনামের সাথে Reporting API v0 ব্যবহার করে, তাহলে Reporting API v1-এ স্থানান্তর করুন ( মাইগ্রেশনের ধাপগুলি দেখুন)। আপনার সাইট যদি ইতিমধ্যেই বিষয়বস্তু-নিরাপত্তা-নীতি লঙ্ঘনের জন্য রিপোর্টিং কার্যকারিতা ব্যবহার করে, তাহলে CSP রিপোর্টিংয়ের জন্য নির্দিষ্ট মাইগ্রেশন পদক্ষেপগুলি পরীক্ষা করুন৷
  • যদি আপনার সাইট ইতিমধ্যে রিপোর্টিং API ব্যবহার না করে এবং আপনি এখন রিপোর্টিং কার্যকারিতা যোগ করছেন: নতুন রিপোর্টিং API (v1) ( Reporting-Endpoints হেডার) ব্যবহার করুন। এর একটি ব্যতিক্রম আছে : যদি আপনার নেটওয়ার্ক ত্রুটি লগিং ব্যবহার করতে হয়, Report-To (v0) ব্যবহার করুন। নেটওয়ার্ক ত্রুটি লগিং বর্তমানে রিপোর্টিং API v1-এ সমর্থিত নয়৷ নেটওয়ার্ক ত্রুটি লগিং এর জন্য একটি নতুন প্রক্রিয়া তৈরি করা হবে⏤ যতক্ষণ না এটি উপলব্ধ হয়, রিপোর্টিং API v0 ব্যবহার করুন৷ আপনার যদি অন্যান্য রিপোর্টের ধরনগুলির সাথে নেটওয়ার্ক ত্রুটি লগিং প্রয়োজন হয়, Report-To (v0) এবং Reporting-Endpoints (v1) উভয়ই ব্যবহার করুন। v0 আপনাকে নেটওয়ার্ক ত্রুটি লগিং দেয় এবং v1 আপনাকে অন্য সব ধরনের রিপোর্ট দেয়।

মাইগ্রেশন পদক্ষেপ

এই মাইগ্রেশনে আপনার লক্ষ্য হল v0 এর সাথে আপনি যে রিপোর্টগুলি পেতেন সেগুলি না হারানো

  1. ধাপ 1 (এখন করুন) : উভয় শিরোনাম ব্যবহার করুন: Report-To (v0) এবং Reporting-Endpoints (v1)।

    এর সাথে, আপনি পাবেন:

    • Reporting-Endpoints (v1) এর জন্য নতুন Chrome এবং Edge ক্লায়েন্টদের থেকে রিপোর্টগুলিকে ধন্যবাদ৷
    • পুরানো ক্রোম এবং এজ ক্লায়েন্টদের থেকে রিপোর্ট Report-To (v0) কে ধন্যবাদ।

    যে ব্রাউজার দৃষ্টান্তগুলি Reporting-Endpoints সমর্থন করে সেগুলি Reporting-Endpoints ব্যবহার করবে, এবং যে দৃষ্টান্তগুলি Report-To তে ফিরে আসবে না৷ অনুরোধ এবং প্রতিবেদনের বিন্যাস v0 এবং v1 এর জন্য একই।

  2. ধাপ 2 (এখন করুন): Reporting-Endpoints শিরোনামটি রিপোর্ট তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়াতে সেট করা আছে তা নিশ্চিত করুন।

    v0 দিয়ে, আপনি শুধুমাত্র কিছু প্রতিক্রিয়ার উপর রিপোর্টিং এন্ডপয়েন্ট সেট করতে বেছে নিতে পারেন এবং সেই মূলের অন্যান্য নথি (পৃষ্ঠা) এই "পরিবেষ্টিত" এন্ডপয়েন্ট ব্যবহার করবে। v1 এর সাথে, স্কোপিংয়ের পার্থক্যের কারণে, আপনাকে রিপোর্ট তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়ার উপর Reporting-Endpoints হেডার সেট করতে হবে।

  3. ধাপ 3 (পরে শুরু করুন): একবার আপনার সমস্ত বা অধিকাংশ ব্যবহারকারীর পরবর্তী Chrome বা এজ ইনস্টলে (96 এবং পরবর্তী) আপডেট হয়ে গেলে, Report-To (v0) সরান এবং শুধুমাত্র Reporting-Endpoints রাখুন।

    একটি ব্যতিক্রম: যদি আপনার নেটওয়ার্ক ত্রুটি লগিং প্রতিবেদনের প্রয়োজন হয়, নেটওয়ার্ক ত্রুটি লগিং এর জন্য একটি নতুন প্রক্রিয়া না হওয়া পর্যন্ত Report-To রাখুন।

মাইগ্রেশন কুকবুকে কোডের উদাহরণ দেখুন।

CSP রিপোর্টিং এর জন্য মাইগ্রেশন পদক্ষেপ

দুটি উপায়ে বিষয়বস্তু-নিরাপত্তা-নীতি লঙ্ঘন প্রতিবেদন কনফিগার করা যেতে পারে:

  • report-uri নির্দেশের মাধ্যমে একা সিএসপি হেডারের সাথে। এটি ক্রোম, ফায়ারফক্স, সাফারি এবং এজ জুড়ে বিস্তৃত ব্রাউজার সমর্থন রয়েছে। প্রতিবেদনগুলি বিষয়বস্তু-প্রকার application/csp-report সাথে পাঠানো হয় এবং CSP-এর জন্য নির্দিষ্ট একটি বিন্যাস থাকে। এই রিপোর্টগুলিকে "CSP লেভেল 2 রিপোর্ট" বলা হয় এবং রিপোর্টিং API এর উপর নির্ভর করে না
  • রিপোর্টিং এপিআই-এর সাথে, এটি Report-To হেডার (লেগ্যাসি) বা নতুন Reporting-Endpoints (v1) এর মাধ্যমে। এটি শুধুমাত্র Chrome এবং Edge-এ সমর্থিত। প্রতিবেদনের অনুরোধগুলির অন্যান্য রিপোর্টিং API অনুরোধগুলির মতো একই বিন্যাস এবং একই বিষয়বস্তু-প্রকার application/reports+json

প্রথম পদ্ধতি ব্যবহার করা (শুধুমাত্র report-uri ) আর সুপারিশ করা হয় না এবং দ্বিতীয় পদ্ধতি ব্যবহার করার কিছু সুবিধা রয়েছে। বিশেষ করে, এটি আপনাকে সমস্ত রিপোর্টের ধরনগুলির জন্য রিপোর্টিং সেট আপ করার পাশাপাশি একটি জেনেরিক এন্ডপয়েন্ট সেট করার জন্য একটি একক উপায় ব্যবহার করতে সক্ষম করে (কারণ রিপোর্টিং API⏤CSP এবং অন্যদের⏤ একই ফর্ম্যাট application/reports+json মাধ্যমে উত্পন্ন সমস্ত রিপোর্ট অনুরোধ রয়েছে application/reports+json

যাইহোক, শুধুমাত্র কয়েকটি ব্রাউজার report-to সমর্থন করে । তাই একাধিক ব্রাউজার থেকে CSP লঙ্ঘনের রিপোর্ট পাওয়ার জন্য আপনাকে Reporting API অ্যাপ্রোচ ( Report-To বা ভাল, Reporting-Endpoints ) এর পাশাপাশি report-uri রাখার পরামর্শ দেওয়া হচ্ছে। একটি ব্রাউজারে যা report-uri এবং report-to স্বীকৃতি দেয়, report-to উপস্থিত থাকলে report-uri উপেক্ষা করা হবে। একটি ব্রাউজারে যা শুধুমাত্র report-uri স্বীকৃতি দেয়, শুধুমাত্র report-uri বিবেচনা করা হবে।

  1. ধাপ 1 (এখন করুন) : আপনি যদি এটি এখনও যোগ না করে থাকেন, তাহলে report-uri পাশাপাশি report-to যোগ করুন। যেসব ব্রাউজার শুধুমাত্র report-uri (ফায়ারফক্স) সমর্থন করে তারা report-uri ব্যবহার করবে এবং যে ব্রাউজারগুলি report-to (Chrome, Edge) সমর্থন করে তারা report-to ব্যবহার করবে। report-to এ আপনি যে নামযুক্ত শেষ পয়েন্টগুলি ব্যবহার করবেন তা নির্দিষ্ট করতে, Report-To এবং Reporting-Endpoints উভয় শিরোনাম ব্যবহার করুন। এটি নিশ্চিত করে যে আপনি পুরানো এবং নতুন উভয় ক্রোম এবং এজ ক্লায়েন্টদের কাছ থেকে রিপোর্ট পাবেন৷

  2. ধাপ 3 (পরে শুরু করুন): একবার আপনার সমস্ত বা অধিকাংশ ব্যবহারকারীর পরবর্তী Chrome বা এজ ইনস্টলে (96 এবং পরবর্তী) আপডেট হয়ে গেলে, Report-To (v0) সরান এবং শুধুমাত্র Reporting-Endpoints রাখুন। report-uri রাখুন যাতে আপনি এখনও ব্রাউজারগুলির জন্য রিপোর্ট পান যা শুধুমাত্র এটি সমর্থন করে।

CSP রিপোর্টিং মাইগ্রেশনের এই ধাপগুলির জন্য কোড উদাহরণ দেখুন।

মাইগ্রেশন: উদাহরণ কোড

ওভারভিউ

আপনি যদি aa COOP ( Cross-Origin-Opener-Policy হেডার), একটি COEP ( Cross-Origin-Embedder-Policy ) বা একটি ডকুমেন্ট পলিসি ( Document-Policy হেডার) এর লঙ্ঘন প্রতিবেদন পেতে লিগ্যাসি রিপোর্টিং API (v0) ব্যবহার করেন ): আপনি রিপোর্টিং API v1-এ স্থানান্তরিত হওয়ার সাথে সাথে আপনাকে এই নীতি শিরোনামগুলিকে পরিবর্তন করতে হবে না। আপনার যা প্রয়োজন তা হল লিগ্যাসি Report-To হেডার থেকে নতুন Reporting-Endpoints হেডারে স্থানান্তর করা।

আপনি যদি একটি CSP ( Content-Security-Policy শিরোনাম) এর জন্য লঙ্ঘন প্রতিবেদন পেতে লিগ্যাসি রিপোর্টিং API (v0) ব্যবহার করেন, তাহলে আপনাকে নতুন রিপোর্টিং API (এপিআই) তে স্থানান্তরের অংশ হিসাবে আপনার Content-Security-Policy পরিবর্তন করতে হতে পারে v1)।

বেসিক মাইগ্রেশন

লিগ্যাসি কোড (v0 সহ)
Report-To: { group: "main-endpoint", "endpoints": [ { "url": "https://reports.example/main" }] }, { group: "default-endpoint", "endpoints": [ { "url": "https://reports.example/default" }] }
নতুন কোড (v1 এর পাশাপাশি v0 সহ ট্রানজিশন কোড)
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"
Report-To: { group: "main-endpoint", "max_age": 86400, "endpoints": [ { "url": "https://reports.example/main" }] }, { group: "default-endpoint", "max_age": 86400, "endpoints": [ { "url": "https://reports.example/default" }] }

যদি আপনার সাইটে ইতিমধ্যেই রিপোর্টিং কার্যকারিতা থাকে, রিপোর্ট হারানো এড়াতে শুধুমাত্র সাময়িকভাবে (বেশিরভাগ Chrome এবং এজ ক্লায়েন্ট আপডেট না হওয়া পর্যন্ত) Report-To রাখুন।

আপনার যদি নেটওয়ার্ক ত্রুটি লগিং প্রয়োজন হয়, নেটওয়ার্ক ত্রুটি লগিং প্রতিস্থাপন উপলব্ধ না হওয়া পর্যন্ত Report-To রাখুন।

নতুন কোড (শুধুমাত্র v1 সহ)
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"

বেশিরভাগ ক্রোম এবং এজ ক্লায়েন্ট আপডেট হয়ে গেলে এবং API v1 সমর্থন করলে ভবিষ্যতে আপনার কোডটি এরকম দেখতে পারে।

মনে রাখবেন যে v1 দিয়ে, আপনি এখনও নির্দিষ্ট রিপোর্টের ধরন নির্দিষ্ট প্রান্তে পাঠাতে পারেন। কিন্তু প্রতি এন্ডপয়েন্টে আপনার শুধুমাত্র একটি ইউআরএল থাকতে পারে।

সব পৃষ্ঠা পর্যবেক্ষণ

লিগ্যাসি কোড (v0 সহ), উদাহরণস্বরূপ এক্সপ্রেসের সাথে
app.get("/", (request, response) => {
  response.set("Report-To", )
  response.render(...)
});
app.get("/page1", (request, response) => {
  response.render(...)
});

v0 দিয়ে, আপনি শুধুমাত্র কিছু প্রতিক্রিয়ার জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারেন। সেই মূলের অন্যান্য নথি (পৃষ্ঠা) স্বয়ংক্রিয়ভাবে এই পরিবেষ্টিত শেষ পয়েন্টগুলি ব্যবহার করে। এখানে, "/" এর জন্য সেট করা শেষ পয়েন্টগুলি সমস্ত প্রতিক্রিয়ার জন্য ব্যবহার করা হয়, উদাহরণস্বরূপ page1 এর জন্য।

নতুন কোড (v1 সহ), উদাহরণস্বরূপ এক্সপ্রেসের সাথে
// Use a middleware to set the reporting endpoint(s) for *all* requests.
app.use(function(request, response, next) {
  response.set("Reporting-Endpoints", );
  next();
});

app.get("/", (request, response) => {
  response.render(...)
});

app.get("/page1", (request, response) => {
  response.render(...)
});

v1 এর সাথে, আপনাকে প্রতিবেদন তৈরি করতে পারে এমন সমস্ত প্রতিক্রিয়ার উপর Reporting-Endpoints হেডার সেট করতে হবে।

CSP রিপোর্টিং মাইগ্রেশন

উত্তরাধিকার কোড, শুধুমাত্র রিপোর্ট-ইউরি সহ
Content-Security-Policy: ...; report-uri https://reports.example/main

শুধুমাত্র report-uri ব্যবহার করা আর সুপারিশ করা হয় না । আপনার কোড উপরের মত দেখায়, মাইগ্রেট. নীচের নতুন কোড উদাহরণ দেখুন (সবুজ)।

রিপোর্ট-উরি এবং রিপোর্ট-টু (v0) হেডার সহ রিপোর্ট-টু নির্দেশ সহ আরও ভাল উত্তরাধিকার কোড
Content-Security-Policy: ...; report-uri https://reports.example/main; report-to main-endpoint
Report-To: main-endpoint="https://reports.example/main"

এটি আরও ভাল: এই কোডটি রিপোর্ট-টু ব্যবহার করে, রিপোর্ট-উরির নতুন প্রতিস্থাপন। এটি এখনও পিছনের সামঞ্জস্যের জন্য রিপোর্ট-ইউরি রাখে; অনেক ব্রাউজার report-to সমর্থন করে না কিন্তু report-uri সমর্থন করে।

তবুও, এটি আরও ভাল হতে পারে: এই কোডগুলি রিপোর্টিং API v0 ( Report-To হেডার) ব্যবহার করে। v1-এ স্থানান্তর করুন: নীচে 'নতুন কোড' উদাহরণ দেখুন (সবুজ রঙে)।

রিপোর্ট-উরি এবং রিপোর্টিং-এন্ডপয়েন্টস (v1) হেডার সহ রিপোর্ট-টু নির্দেশ সহ নতুন কোড
Content-Security-Policy: ...; report-uri https://reports.example/main; report-to main-endpoint
Reporting-Endpoints: main-endpoint="https://reports.example/main"
Report-To: ...

report-uri নির্দেশিকা বরাবর report-to নির্দেশিকা রাখুন যতক্ষণ না report-to নির্দেশিকা ব্রাউজার জুড়ে সমর্থিত হয়। ব্রাউজার সামঞ্জস্য টেবিল দেখুন.

Reporting-Endpoints সাথে সাময়িকভাবে Report-To রাখুন। একবার আপনার Chrome এবং Edge দর্শকদের বেশিরভাগ 96+ ব্রাউজার সংস্করণে আপগ্রেড হয়ে গেলে, Report-To সরান৷

আরও পড়া

এই নিবন্ধে তাদের পর্যালোচনা এবং পরামর্শের জন্য ইয়ান ক্লেল্যান্ড, ইজি কিতামুরা এবং মিলিকা মিহাজলিজাকে অনেক ধন্যবাদ।