রিপোর্টিং এপিআই-এর একটি নতুন সংস্করণ পাওয়া যাচ্ছে। এটি আরও বেশি গোপনীয় এবং বিভিন্ন ব্রাউজারে সমর্থিত হওয়ার সম্ভাবনা বেশি।
রিপোর্টিং এপিআই আপনার সাইটে ভিজিটরদের ব্যবহারের সময় ঘটা বিভিন্ন ত্রুটি সম্পর্কে আপনাকে অবহিত করে। এটি আপনাকে ব্রাউজারের হস্তক্ষেপ, ব্রাউজার ক্র্যাশ, কন্টেন্ট-সিকিউরিটি-পলিসি লঙ্ঘন, COOP/COEP লঙ্ঘন, ডেপ্রিকেশন সতর্কতা এবং আরও অনেক কিছু সম্পর্কে ধারণা দেয়।
রিপোর্টিং এপিআই-এর একটি নতুন সংস্করণ উপলব্ধ হয়েছে। নতুন এপিআইটি আরও সংক্ষিপ্ত এবং বিভিন্ন ব্রাউজারে সমর্থিত হওয়ার সম্ভাবনা বেশি।
সারসংক্ষেপ
সাইট ডেভেলপাররা
আপনার সাইটে যদি আগে থেকেই রিপোর্টিং কার্যকারিতা থাকে , তাহলে নতুন হেডার ( Reporting-Endpoints ) ব্যবহার করে v1-এ মাইগ্রেট করুন, কিন্তু পুরোনো হেডারটি ( Report-To ) আরও কিছু সময়ের জন্য রেখে দিন। মাইগ্রেশন: উদাহরণ কোড দেখুন।
আপনি যদি এইমাত্র আপনার সাইটে রিপোর্টিং কার্যকারিতা যোগ করে থাকেন , তাহলে শুধু নতুন হেডারটি ( Reporting-Endpoints ) ব্যবহার করুন।
⚠️ উভয় ক্ষেত্রেই, রিপোর্ট তৈরি করতে পারে এমন সমস্ত রেসপন্সে Reporting-Endpoints হেডারটি সেট করতে ভুলবেন না।
রিপোর্টিং পরিষেবা ডেভেলপাররা
আপনি যদি কোনো এন্ডপয়েন্ট সার্ভিস রক্ষণাবেক্ষণ করেন বা নিজেরটা পরিচালনা করেন, তাহলে আরও বেশি ট্র্যাফিকের আশা করতে পারেন, কারণ আপনি বা বহিরাগত ডেভেলপাররা রিপোর্টিং এপিআই ভি১ ( Reporting-Endpoints হেডার)-এ স্থানান্তরিত হবেন।
বিস্তারিত বিবরণ এবং উদাহরণ কোডের জন্য পড়তে থাকুন!
নেটওয়ার্ক ত্রুটি লগিং
নেটওয়ার্ক ত্রুটি লগিংয়ের জন্য একটি নতুন পদ্ধতি তৈরি করা হবে। সেটি উপলব্ধ হলে, রিপোর্টিং এপিআই ভি০ (Reporting API v0) থেকে সেই নতুন পদ্ধতিতে স্থানান্তরিত হন।
ডেমো এবং কোড
- ডেমো সাইট: নতুন রিপোর্টিং এপিআই (v1)
- ডেমো সাইটের জন্য কোড
v0 এবং v1 এর মধ্যে পার্থক্য
কী পরিবর্তন হচ্ছে
- এপিআই পৃষ্ঠটি ভিন্ন।
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 ডিরেক্টিভ ব্যবহার করে।
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-এর মাধ্যমে, আপনি শুধুমাত্র কিছু রেসপন্সের জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারেন। সেই অরিজিনের অন্যান্য ডকুমেন্ট (পেজ) স্বয়ংক্রিয়ভাবে এই অ্যাম্বিয়েন্ট এন্ডপয়েন্টগুলো ব্যবহার করবে।
v1-এর ক্ষেত্রে, যে সমস্ত রেসপন্স থেকে রিপোর্ট তৈরি হতে পারে, সেগুলিতে আপনাকে Reporting-Endpoints হেডারটি সেট করতে হবে।
- উভয় এপিআই একই ধরনের রিপোর্ট সমর্থন করে, তবে একটি ব্যতিক্রম আছে: v1 নেটওয়ার্ক এরর রিপোর্ট সমর্থন করে না। মাইগ্রেশন ধাপগুলোতে আরও বিস্তারিত পড়ুন।
- v0 বর্তমানে এবং ভবিষ্যতেও সকল ব্রাউজারে সমর্থিত হবে না। ভবিষ্যতে v1 একাধিক ব্রাউজারে সমর্থিত হওয়ার সম্ভাবনা বেশি।
যা অপরিবর্তিত থাকে
- প্রতিবেদনগুলোর বিন্যাস ও কাঠামো অপরিবর্তিত রয়েছে।
- ব্রাউজার থেকে এন্ডপয়েন্টে পাঠানো অনুরোধটি
application/reports+jsonContent-typeএকটিPOSTঅনুরোধ হিসেবেই থাকে। - v0 এবং v1 উভয় সংস্করণেই নির্দিষ্ট এন্ডপয়েন্টকে নির্দিষ্ট রিপোর্ট টাইপের সাথে ম্যাপ করার সুবিধা রয়েছে।
-
defaultএন্ডপয়েন্টের ভূমিকা অপরিবর্তিত রয়েছে। রিপোর্টিং এপিআই ভি১
ReportingObserverউপর কোনো প্রভাব ফেলে না।ReportingObserverসমস্ত অবজার্ভেবল রিপোর্ট অ্যাক্সেস করতে থাকে এবং সেগুলোর ফরম্যাট অভিন্ন থাকে।
v0 এবং v1 এর মধ্যে সমস্ত পার্থক্য
লিগ্যাসি রিপোর্টিং এপিআই (v0)Report-To হেডার | নতুন রিপোর্টিং এপিআই (v1)Reporting-Endpoints হেডার | |
|---|---|---|
| ব্রাউজার সমর্থন | ক্রোম ৬৯+ এবং এজ ৬৯+। | ক্রোম ৯৬+ এবং এজ ৯৬+। ফায়ারফক্স সমর্থন করে। সাফারি আপত্তি করে না। ব্রাউজার সিগন্যাল দেখুন। |
| এন্ডপয়েন্ট | একাধিক রিপোর্ট কালেক্টরের যেকোনোটিতে রিপোর্ট পাঠায় (প্রতিটি এন্ডপয়েন্ট গ্রুপের জন্য একাধিক ইউআরএল সংজ্ঞায়িত থাকে)। | নির্দিষ্ট রিপোর্ট সংগ্রাহকদের কাছে রিপোর্ট পাঠায় (প্রতিটি এন্ডপয়েন্টের জন্য শুধুমাত্র একটি URL নির্ধারিত থাকে)। |
| এপিআই পৃষ্ঠ | নামযুক্ত এন্ডপয়েন্ট গ্রুপ কনফিগার করতে `Report-To` হেডার ব্যবহার করে। | নামযুক্ত এন্ডপয়েন্ট কনফিগার করতে `Reporting-Endpoints` হেডার ব্যবহার করা হয়। |
| এই এপিআই-এর মাধ্যমে যে ধরনের রিপোর্ট তৈরি করা যায় |
| নেটওয়ার্ক এরর লগিং (NEL) ছাড়া অন্য সব ক্ষেত্রে অপরিবর্তিত: এটি নতুন রিপোর্টিং এপিআই (v1)-এ সমর্থিত নয় । |
| প্রতিবেদনের পরিধি | উৎপত্তি। একটি ডকুমেন্টের ' Report-To হেডার সেই অরিজিনের অন্যান্য ডকুমেন্টকে (পেজকে) প্রভাবিত করে। একটি রিপোর্টের url ফিল্ড অবশ্য ডকুমেন্টভেদে ভিন্ন হয়। | নথি। একটি ডকুমেন্টের Reporting-Endpoints হেডার শুধুমাত্র সেই ডকুমেন্টটিকেই প্রভাবিত করে। একটি রিপোর্টের url ফিল্ড প্রতিটি ডকুমেন্টের জন্য ভিন্ন ভিন্ন হয়ে থাকে। |
| বিচ্ছিন্নকরণ (ব্যাচিং) প্রতিবেদন | বিভিন্ন ডকুমেন্ট (পেজ) অথবা সাইট/অরিজিন, যেগুলো প্রায় একই সময়ে রিপোর্ট তৈরি করে এবং যেগুলোর রিপোর্টিং এন্ডপয়েন্ট একই, সেগুলোকে একসাথে ব্যাচ করা হবে: অর্থাৎ, সেগুলোকে একই মেসেজে রিপোর্টিং এন্ডপয়েন্টে পাঠানো হবে। |
|
| লোড ব্যালেন্সিং / অগ্রাধিকারের জন্য সমর্থন | হ্যাঁ | না |
এন্ডপয়েন্ট ডেভেলপারগণ: আরও বেশি ট্র্যাফিকের প্রত্যাশা করুন।
যদি আপনি আপনার নিজস্ব সার্ভারকে একটি রিপোর্টিং এন্ডপয়েন্ট হিসেবে সেট আপ করে থাকেন, অথবা যদি আপনি একটি সার্ভিস হিসেবে কোনো রিপোর্ট কালেক্টর তৈরি বা রক্ষণাবেক্ষণ করেন, তাহলে সেই এন্ডপয়েন্টে আরও বেশি ট্র্যাফিক আশা করতে পারেন।
এর কারণ হলো, রিপোর্টিং এপিআই ভি০-এর মতো রিপোর্টিং এপিআই ভি১-এ রিপোর্টগুলো ব্যাচ করা হয় না। তাই, অ্যাপ্লিকেশন ডেভেলপাররা যখন রিপোর্টিং এপিআই ভি১-এ মাইগ্রেট করা শুরু করবে, তখন রিপোর্টের সংখ্যা একই থাকবে, কিন্তু এন্ডপয়েন্ট সার্ভারে রিকোয়েস্টের পরিমাণ বেড়ে যাবে।
অ্যাপ্লিকেশন ডেভেলপারগণ: Reporting-Endpoints (v1)-এ স্থানান্তরিত হন।
আপনার কী করা উচিত?
নতুন রিপোর্টিং এপিআই (v1) ব্যবহারের বেশ কিছু সুবিধা রয়েছে ✅:
- ব্রাউজার সংকেত ইতিবাচক , যার অর্থ হলো v1-এর জন্য ক্রস-ব্রাউজার সমর্থন আশা করা যায় (v0-এর মতো নয়, যা শুধুমাত্র ক্রোম এবং এজ-এ সমর্থিত)।
- এপিআইটি আরও সংক্ষিপ্ত।
- নতুন রিপোর্টিং এপিআই (v1) কে কেন্দ্র করে টুলিং তৈরি করা হচ্ছে।
এই বিষয়টি মাথায় রেখে:
- যদি আপনার সাইট ইতিমধ্যেই
Report-Toহেডার সহ Reporting API v0 ব্যবহার করে থাকে, তাহলে Reporting API v1-এ মাইগ্রেট করুন ( মাইগ্রেশন ধাপগুলো দেখুন)। যদি আপনার সাইট ইতিমধ্যেই Content-Security-Policy লঙ্ঘনের জন্য রিপোর্টিং কার্যকারিতা ব্যবহার করে থাকে, তাহলে CSP রিপোর্টিং-এর জন্য নির্দিষ্ট মাইগ্রেশন ধাপগুলো দেখুন। - যদি আপনার সাইট আগে থেকেই রিপোর্টিং এপিআই ব্যবহার না করে থাকে এবং আপনি এখন রিপোর্টিং কার্যকারিতা যোগ করতে চান: তাহলে নতুন রিপোর্টিং এপিআই (v1) (
Reporting-Endpointsহেডার) ব্যবহার করুন। এর একটি ব্যতিক্রম আছে : যদি আপনার নেটওয়ার্ক এরর লগিং ব্যবহার করার প্রয়োজন হয়, তাহলেReport-To(v0) ব্যবহার করুন। রিপোর্টিং এপিআই v1-এ বর্তমানে নেটওয়ার্ক এরর লগিং সমর্থিত নয়। নেটওয়ার্ক এরর লগিং-এর জন্য একটি নতুন ব্যবস্থা তৈরি করা হবে—সেটি উপলব্ধ না হওয়া পর্যন্ত রিপোর্টিং এপিআই v0 ব্যবহার করুন। যদি আপনার অন্যান্য ধরনের রিপোর্টের পাশাপাশি নেটওয়ার্ক এরর লগিং-এর প্রয়োজন হয়, তাহলেReport-To(v0) এবংReporting-Endpoints(v1) উভয়ই ব্যবহার করুন। v0 আপনাকে নেটওয়ার্ক এরর লগিং দেবে এবং v1 আপনাকে অন্য সব ধরনের রিপোর্ট দেবে।
অভিবাসনের পদক্ষেপ
এই মাইগ্রেশনে আপনার লক্ষ্য হলো v0-এর সাথে পাওয়া রিপোর্টগুলো যেন হারিয়ে না যায় ।
ধাপ ১ (এখনই করুন) :
Report-To(v0) এবংReporting-Endpoints(v1) উভয় হেডার ব্যবহার করুন।এর সাথে আপনি পাবেন:
-
Reporting-Endpoints(v1)-এর সৌজন্যে নতুন ক্রোম এবং এজ ক্লায়েন্ট থেকে রিপোর্ট পাওয়া যাচ্ছে। -
Report-To(v0)-এর সৌজন্যে পুরোনো Chrome এবং Edge ক্লায়েন্টগুলো থেকে রিপোর্ট পাওয়া যাচ্ছে।
যেসব ব্রাউজার ইনস্ট্যান্স
Reporting-Endpointsসমর্থন করে,Reporting-Endpointsব্যবহার করবে, এবং যেগুলো করে না, সেগুলোReport-Toতে ফিরে যাবে। v0 এবং v1-এর জন্য অনুরোধ এবং রিপোর্টের ফরম্যাট একই।-
ধাপ ২ (এখনই করুন): নিশ্চিত করুন যে, রিপোর্ট তৈরি করতে পারে এমন সমস্ত রেসপন্সে
Reporting-Endpointsহেডারটি সেট করা আছে।v0-তে, আপনি শুধুমাত্র কিছু রেসপন্সের জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারতেন এবং সেই অরিজিনের অন্যান্য ডকুমেন্ট (পেজ) এই 'অ্যাম্বিয়েন্ট' এন্ডপয়েন্টটি ব্যবহার করত। v1-এ, স্কোপিং-এর পার্থক্যের কারণে, যে সমস্ত রেসপন্স রিপোর্ট তৈরি করতে পারে, সেগুলির সবকটিতেই আপনাকে
Reporting-Endpointsহেডারটি সেট করতে হবে।ধাপ ৩ (পরে শুরু করুন): আপনার সকল বা অধিকাংশ ব্যবহারকারী যখন ক্রোম বা এজ-এর পরবর্তী সংস্করণ (৯৬ এবং তার পরের সংস্করণ)-এ আপডেট করে নেবেন, তখন
Report-To(v0) সরিয়ে দিন এবং শুধুReporting-Endpointsরাখুন।একটি ব্যতিক্রম: যদি আপনার নেটওয়ার্ক ত্রুটি লগিং রিপোর্টের প্রয়োজন হয়, তবে নেটওয়ার্ক ত্রুটি লগিংয়ের জন্য একটি নতুন ব্যবস্থা চালু না হওয়া পর্যন্ত
Report-Toচালু রাখুন।
মাইগ্রেশন কুকবুকে কোডের উদাহরণ দেখুন।
সিএসপি রিপোর্টিং এর জন্য মাইগ্রেশনের ধাপসমূহ
কন্টেন্ট-সিকিউরিটি-পলিসি লঙ্ঘনের রিপোর্ট দুটি উপায়ে কনফিগার করা যেতে পারে:
- শুধুমাত্র CSP হেডার এবং
report-uriডিরেক্টিভ ব্যবহার করে এটি করা যায়। Chrome, Firefox, Safari এবং Edge সহ বিভিন্ন ব্রাউজারে এর ব্যাপক সমর্থন রয়েছে। রিপোর্টগুলোapplication/csp-reportকন্টেন্ট-টাইপ সহ পাঠানো হয় এবং এগুলোর একটি CSP-নির্দিষ্ট ফরম্যাট থাকে। এই রিপোর্টগুলোকে "CSP লেভেল ২ রিপোর্ট" বলা হয় এবং এগুলো রিপোর্টিং এপিআই (Reporting API)-এর উপর নির্ভর করে না । - রিপোর্টিং এপিআই-এর ক্ষেত্রে, এটি
Report-Toহেডার (লেগ্যাসি) অথবা নতুনReporting-Endpoints(v1) এর মাধ্যমে করা হয়। এটি শুধুমাত্র ক্রোম এবং এজ-এ সমর্থিত। রিপোর্ট রিকোয়েস্টগুলোর ফরম্যাট অন্যান্য রিপোর্টিং এপিআই রিকোয়েস্টের মতোই এবং এর কন্টেন্ট-টাইপওapplication/reports+json।
প্রথম পদ্ধতিটি (শুধুমাত্র report-uri ) এখন আর সুপারিশ করা হয় না এবং দ্বিতীয় পদ্ধতিটি ব্যবহারের কিছু সুবিধা রয়েছে। বিশেষ করে, এটি আপনাকে সমস্ত রিপোর্ট টাইপের জন্য রিপোর্টিং সেট আপ করার একটি একক উপায় ব্যবহার করতে সক্ষম করে, সেইসাথে একটি জেনেরিক এন্ডপয়েন্ট সেট করার সুযোগ দেয় (কারণ রিপোর্টিং এপিআই⏤সিএসপি এবং অন্যান্য⏤এর মাধ্যমে তৈরি সমস্ত রিপোর্ট অনুরোধের ফরম্যাট একই থাকে application/reports+json )।
তবে, খুব কম ব্রাউজারই report-to সমর্থন করে । তাই একাধিক ব্রাউজার থেকে CSP ভায়োলেশন রিপোর্ট পাওয়ার জন্য রিপোর্টিং এপিআই পদ্ধতির ( Report-To অথবা আরও ভালো, Reporting-Endpoints ) পাশাপাশি report-uri রাখার পরামর্শ দেওয়া হয়। যে ব্রাউজার report-uri এবং report-to শনাক্ত করতে পারে, সেখানে report-to উপস্থিত থাকলে report-uri উপেক্ষা করা হবে। যে ব্রাউজার শুধু report-uri শনাক্ত করতে পারে, সেখানে কেবল report-uri বিবেচনা করা হবে।
ধাপ ১ (এখনই করুন) : যদি আপনি এখনও এটি যোগ না করে থাকেন, তাহলে
report-uriপাশাপাশিreport-toযোগ করুন। যে ব্রাউজারগুলো শুধুreport-uriসমর্থন করে (যেমন Firefox) সেগুলোreport-uriব্যবহার করবে, এবং যে ব্রাউজারগুলোreport-toসমর্থন করে (যেমন Chrome, Edge) সেগুলোreport-toব্যবহার করবে।report-toতে আপনি যে নেমড এন্ডপয়েন্টগুলো ব্যবহার করবেন তা নির্দিষ্ট করতে,Report-ToএবংReporting-Endpointsউভয় হেডারই ব্যবহার করুন। এটি নিশ্চিত করে যে আপনি পুরোনো এবং নতুন উভয় Chrome এবং Edge ক্লায়েন্ট থেকেই রিপোর্ট পাবেন।ধাপ ৩ (পরে শুরু করুন): আপনার সকল বা অধিকাংশ ব্যবহারকারী যখন ক্রোম বা এজ-এর পরবর্তী সংস্করণ (৯৬ এবং তার পরের সংস্করণ)-এ আপডেট করে নেবেন, তখন
Report-To(v0) সরিয়ে দিন এবং শুধুReporting-Endpointsরাখুন।report-uriরেখে দিন, যাতে আপনি শুধু এটি সমর্থন করে এমন ব্রাউজারগুলোর জন্যও রিপোর্ট পেতে থাকেন।
CSP রিপোর্টিং মাইগ্রেশন- এর এই ধাপগুলোর জন্য কোড উদাহরণ দেখুন।
মাইগ্রেশন: উদাহরণ কোড
সংক্ষিপ্ত বিবরণ
আপনি যদি একটি COOP ( Cross-Origin-Opener-Policy হেডার), একটি COEP ( Cross-Origin-Embedder-Policy ) বা একটি ডকুমেন্ট পলিসির ( Document-Policy হেডার) ভায়োলেশন রিপোর্ট পেতে লিগ্যাসি রিপোর্টিং এপিআই (v0) ব্যবহার করে থাকেন, তাহলে রিপোর্টিং এপিআই v1-এ মাইগ্রেট করার সময় আপনার এই পলিসি হেডারগুলো সরাসরি পরিবর্তন করার প্রয়োজন নেই। আপনাকে যা করতে হবে তা হলো লিগ্যাসি Report-To হেডার থেকে নতুন Reporting-Endpoints হেডারে মাইগ্রেট করা।
আপনি যদি কোনো CSP-এর ( Content-Security-Policy হেডার) ভায়োলেশন রিপোর্ট পেতে পুরোনো রিপোর্টিং API (v0) ব্যবহার করে থাকেন, তাহলে নতুন রিপোর্টিং API (v1)-এ মাইগ্রেশনের অংশ হিসেবে আপনাকে আপনার Content-Security-Policy কিছু পরিবর্তন আনতে হতে পারে।
মৌলিক স্থানান্তর
Report-To: { group: "main-endpoint", "endpoints": [ { "url": "https://reports.example/main" }] }, { group: "default-endpoint", "endpoints": [ { "url": "https://reports.example/default" }] }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" }] }
আপনার সাইটে যদি আগে থেকেই রিপোর্টিং কার্যকারিতা থাকে, তাহলে রিপোর্ট হারিয়ে যাওয়া এড়াতে Report-To শুধুমাত্র সাময়িকভাবে চালু রাখুন (যতক্ষণ না বেশিরভাগ Chrome এবং Edge ক্লায়েন্ট আপডেট করা হয়)।
আপনার যদি নেটওয়ার্ক ত্রুটি লগিং-এর প্রয়োজন হয়, তবে এর বিকল্প উপলব্ধ না হওয়া পর্যন্ত Report-To চালু রাখুন।
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"ভবিষ্যতে আপনার কোডটি দেখতে এইরকম হতে পারে, যখন বেশিরভাগ ক্রোম ও এজ ক্লায়েন্ট আপডেট হয়ে যাবে এবং এপিআই ভি১ (API v1) সমর্থন করবে।
মনে রাখবেন যে, v1-এর মাধ্যমেও আপনি নির্দিষ্ট ধরনের রিপোর্ট নির্দিষ্ট এন্ডপয়েন্টে পাঠাতে পারবেন। কিন্তু প্রতিটি এন্ডপয়েন্টের জন্য কেবল একটি URL থাকতে পারবে।
সমস্ত পৃষ্ঠা পর্যবেক্ষণ করা
app.get("/", (request, response) => { response.set("Report-To", …) response.render(...) }); app.get("/page1", (request, response) => { response.render(...) });
v0-এর মাধ্যমে, আপনি শুধুমাত্র কিছু রেসপন্সের জন্য রিপোর্টিং এন্ডপয়েন্ট সেট করতে পারেন। সেই অরিজিনের অন্যান্য ডকুমেন্ট (পেজ) স্বয়ংক্রিয়ভাবে এই অ্যাম্বিয়েন্ট এন্ডপয়েন্টগুলো ব্যবহার করে। এখানে, "/" এর জন্য সেট করা এন্ডপয়েন্টগুলো সমস্ত রেসপন্সের জন্য ব্যবহৃত হয়, উদাহরণস্বরূপ page1 জন্য।
// 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 হেডারটি সেট করতে হবে।
সিএসপি রিপোর্টিং মাইগ্রেশন
Content-Security-Policy: ...; report-uri https://reports.example/main শুধুমাত্র report-uri ব্যবহার করা এখন আর বাঞ্ছনীয় নয় । আপনার কোড যদি উপরের মতো দেখতে হয়, তবে মাইগ্রেট করুন। নিচে নতুন কোডের উদাহরণগুলো দেখুন (সবুজ রঙে)।
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-এর নতুন প্রতিস্থাপন। এটি পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্য রাখার জন্য report-uri-ও রেখে দিয়েছে; কারণ বেশ কিছু ব্রাউজার report-to সমর্থন না করলেও report-uri সমর্থন করে।
তবুও, এটি আরও ভালো হতে পারত: এই কোডটি রিপোর্টিং এপিআই v0 ( Report-To হেডার) ব্যবহার করে। 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-to ডিরেক্টিভটি সকল ব্রাউজারে সমর্থিত হচ্ছে, ততক্ষণ পর্যন্ত report-uri ডিরেক্টিভটি report report-to report-to ডিরেক্টিভের পাশাপাশি রাখুন। ব্রাউজার সামঞ্জস্যতা সারণীটি দেখুন।
সাময়িকভাবে Reporting-Endpoints পাশাপাশি Report-To রাখুন। আপনার অধিকাংশ Chrome এবং Edge ব্যবহারকারী 96+ ব্রাউজার সংস্করণে আপগ্রেড করে ফেললে, Report-To সরিয়ে ফেলুন।
আরও পড়ুন
- রিপোর্টিং এপিআই (Reporting API) ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশন নিরীক্ষণ করুন (রিপোর্টিং এপিআই সম্পর্কিত মূল পোস্ট)।
- স্পেসিফিকেশন: লিগ্যাসি রিপোর্টিং এপিআই (v0)
- স্পেসিফিকেশন: নতুন রিপোর্টিং এপিআই (v1)
এই নিবন্ধটির পর্যালোচনা ও পরামর্শের জন্য ইয়ান ক্লেল্যান্ড, এইজি কিতামুরা এবং মিলিকা মিহাজলিয়াকে অসংখ্য ধন্যবাদ।