Reporting API का नया वर्शन उपलब्ध है. यह फ़ॉर्मैट ज़्यादा निजी होता है और इसके सभी ब्राउज़र पर काम करने की संभावना ज़्यादा होती है.
Reporting API से आपको उन गड़बड़ियों के बारे में जानकारी मिलती है जो आपकी साइट पर आने वाले लोगों के इस्तेमाल के दौरान होती हैं. इससे ये फ़ायदे मिलते हैं ब्राउज़र इंटरवेंशन, ब्राउज़र क्रैश, कॉन्टेंट-सुरक्षा-नीति के उल्लंघनों पर आपकी विज़िबिलिटी COOP/COEP के उल्लंघन, इस्तेमाल न होने की चेतावनियां वगैरह.
Reporting API का नया वर्शन उपलब्ध है. नया एपीआई कम बेहतर है और इसमें यह सुविधा सभी ब्राउज़र पर काम करती है.
खास जानकारी
साइट डेवलपर
अगर आपकी साइट के लिए, पहले से ही रिपोर्टिंग की सुविधा उपलब्ध है: नए हेडर का इस्तेमाल करके, v1 पर माइग्रेट करें
(Reporting-Endpoints
), लेकिन लेगसी हेडर को कुछ समय (Report-To
) तक बनाए रखें.
माइग्रेशन: उदाहरण कोड देखें.
अगर आप अपनी साइट में अभी रिपोर्टिंग की सुविधा जोड़ रहे हैं: सिर्फ़ नए हेडर का इस्तेमाल करें
(Reporting-Endpoints
).
⚠️ दोनों ही मामलों में, पक्का करें कि आपने उन सभी जवाबों के लिए Reporting-Endpoints
हेडर को सेट किया हो जो
रिपोर्ट जनरेट करते हैं.
रिपोर्टिंग सेवा डेवलपर
अगर आप एंडपॉइंट सेवा का इस्तेमाल कर रहे हैं या अपनी सेवा दे रहे हैं, तो आपकी ओर से ज़्यादा ट्रैफ़िक की उम्मीद की जा सकती है
या बाहरी डेवलपर, Reporting API v1 (Reporting-Endpoints
हेडर) पर माइग्रेट हो जाएंगे.
ज़्यादा जानकारी और उदाहरण कोड के लिए, पढ़ना जारी रखें!
नेटवर्क की गड़बड़ी को लॉग करने की सेटिंग
नेटवर्क में गड़बड़ी को लॉग करने की सुविधा के लिए एक नया तरीका बनाया जाएगा. इसके उपलब्ध होने के बाद, Reporting API v0 के बजाय नया वर्शन इस्तेमाल करें.
डेमो और कोड
- डेमो साइट: नया Reporting API (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
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default" Document-Policy: ...; report-to main-endpoint
- रिपोर्ट का दायरा अलग होता है.
v0 वर्शन की मदद से, सिर्फ़ कुछ रिस्पॉन्स पर रिपोर्टिंग एंडपॉइंट सेट किए जा सकते हैं. उस पर अन्य दस्तावेज़ (पेज) ऑरिजिन अपने-आप इन ऐंबियंट एंडपॉइंट का इस्तेमाल करेगा.
वर्शन 1 की मदद से, आपको उन सभी रिस्पॉन्स के लिए Reporting-Endpoints
हेडर सेट करना होगा जो जनरेट हो सकते हैं
रिपोर्ट.
- दोनों एपीआई, एक जैसे रिपोर्ट टाइप के साथ काम करते हैं. हालांकि, इस बात का एक अपवाद है: v1 पर नेटवर्क की गड़बड़ी की रिपोर्ट काम नहीं करती. डेटा को दूसरी जगह भेजने के तरीके के बारे में ज़्यादा पढ़ें.
- v0 सभी ब्राउज़र पर काम नहीं करेगा और न ही काम करेगा. वर्शन 1 के सभी डिवाइसों पर काम करने की संभावना ज़्यादा है आने वाले समय में कई ब्राउज़र पर साइन इन करने की सुविधा मिलती है.
क्या नहीं बदला जा सकता है
- रिपोर्ट के फ़ॉर्मैट और स्ट्रक्चर में कोई बदलाव नहीं किया गया है.
- ब्राउज़र से एंडपॉइंट को भेजा गया अनुरोध,
Content-type
केPOST
का अनुरोध ही रहता हैapplication/reports+json
. - कुछ खास एंडपॉइंट को कुछ खास रिपोर्ट टाइप में मैप करना, v0 और v1 दोनों में काम करता है.
default
एंडपॉइंट की भूमिका में कोई बदलाव नहीं किया गया है.Reporting API v1 का
ReportingObserver
पर कोई असर नहीं पड़ता.ReportingObserver
के पास, मॉनिटर की जा सकने वाली सभी रिपोर्ट का ऐक्सेस बना रहेगा और उनका फ़ॉर्मैट यह है एक जैसा.
v0 और v1 के बीच के सभी अंतर
लेगसी Reporting API (v0)Report-To हेडर |
नया Reporting API (v1)Reporting-Endpoints हेडर |
|
---|---|---|
ब्राउज़र समर्थन | Chrome 69 और उसके बाद के वर्शन पर बना है. | Chrome 96 और उसके बाद के वर्शन और Edge 96 के बाद के वर्शन. Firefox का इस्तेमाल किया जा सकता है. Safari को आपत्ति नहीं है. ब्राउज़र के सिग्नल देखें. |
एंडपॉइंट | यह सुविधा एक से ज़्यादा रिपोर्ट कलेक्टर (हर एंडपॉइंट ग्रुप के लिए, कई यूआरएल तय करती है) को रिपोर्ट भेजता है. | खास रिपोर्ट कलेक्टर को रिपोर्ट भेजता है (हर एंडपॉइंट के लिए सिर्फ़ एक यूआरएल तय किया जाता है). |
एपीआई प्लैटफ़ॉर्म | यह एंडपॉइंट ग्रुप के नाम को कॉन्फ़िगर करने के लिए, `Report-To` हेडर का इस्तेमाल करता है. |
यह एंडपॉइंट नाम को कॉन्फ़िगर करने के लिए, `Reporting-Endpoints` हेडर का इस्तेमाल करता है. |
इस एपीआई की मदद से जनरेट की जा सकने वाली अलग-अलग तरह की रिपोर्ट |
|
नेटवर्क गड़बड़ी लॉगिंग (NEL) के अलावा, कोई बदलाव नहीं किया गया है: नए Reporting API (v1) में यह सुविधा काम नहीं करती. |
रिपोर्ट का दायरा | मूल दस्तावेज़ के तौर पर दिखाता है. किसी दस्तावेज़ के Report-To हेडर का असर, उस ऑरिजिन के दूसरे दस्तावेज़ों (पेजों) पर पड़ता है.
हर दस्तावेज़ के हिसाब से, रिपोर्ट का url फ़ील्ड अब भी अलग-अलग होता है.
|
दस्तावेज़. किसी दस्तावेज़ के Reporting-Endpoints हेडर का असर सिर्फ़ उस दस्तावेज़ पर पड़ता है.
हर दस्तावेज़ के हिसाब से, रिपोर्ट का url फ़ील्ड अब भी अलग-अलग होता है.
|
रिपोर्ट आइसोलेशन (बैचिंग) | ऐसे अलग-अलग दस्तावेज़ (पेज) या साइटें/ऑरिजिन जो एक ही समय पर रिपोर्ट जनरेट करते हैं और जिनके रिपोर्टिंग एंडपॉइंट एक ही होते हैं, उन्हें एक साथ बैच में भेज दिया जाएगा. उन्हें एक ही मैसेज में रिपोर्टिंग एंडपॉइंट पर भेजा जाएगा. |
|
लोड बैलेंसिंग / प्राथमिकताओं के लिए सहायता | हां | नहीं |
एंडपॉइंट डेवलपर: ज़्यादा ट्रैफ़िक की उम्मीद
अगर आपने रिपोर्टिंग एंडपॉइंट के तौर पर अपना खुद का सर्वर सेट अप किया है या अगर आपको रिपोर्ट कलेक्टर का इस्तेमाल करते हैं, तो उस एंडपॉइंट पर ज़्यादा ट्रैफ़िक की उम्मीद करते हैं.
ऐसा इसलिए होता है, क्योंकि रिपोर्ट को Reporting API v1 के साथ बैच में नहीं भेजा जाता, क्योंकि Reporting API v0 में रिपोर्ट को इसमें शामिल किया जाता है. इसलिए, जैसे-जैसे ऐप्लिकेशन डेवलपर रिपोर्टिंग API v1 में माइग्रेट करना शुरू करेंगे, रिपोर्ट की संख्या हालांकि, एंडपॉइंट सर्वर पर अनुरोधों की संख्या बढ़ जाएगी.
ऐप्लिकेशन डेवलपर: Reporting-Endpoints
(v1) पर माइग्रेट करें
ऐसे में आपको क्या करना चाहिए?
नए Reporting API (v1) के इस्तेमाल के कई फ़ायदे हैं ✅:
- ब्राउज़र के सिग्नल पॉज़िटिव होते हैं. इसका मतलब है कि कि v1 के लिए क्रॉस-ब्राउज़र सपोर्ट की उम्मीद की जा सकती है. v0 के उलट, जो सिर्फ़ Chrome और किनारे).
- एपीआई बेहतर है.
- टूल को नए Reporting API (v1) के आधार पर डेवलप किया जा रहा है.
इन बातों को ध्यान में रखें:
- अगर आपकी साइट पहले से ही
Report-To
हेडर के साथ Reporting API v0 का इस्तेमाल कर रही है, तो इस पर माइग्रेट करें Reporting API v1 (डेटा दूसरी जगह भेजने के तरीके देखें). अगर आपकी साइट पहले से ही कॉन्टेंट और सुरक्षा नीति के उल्लंघनों की शिकायत करने के लिए इस्तेमाल किए जाने वाले टूल की जानकारी के लिए, सीएसपी रिपोर्टिंग के लिए माइग्रेशन के खास चरण देखें. - अगर आपकी साइट में पहले से Reporting API का इस्तेमाल नहीं किया जा रहा है और अब उसकी जगह पर रिपोर्टिंग की सुविधा जोड़ी जा रही है, तो:
नए Reporting API (v1) (
Reporting-Endpoints
हेडर) का इस्तेमाल करें. इसका एक अपवाद है यह: अगर आपको नेटवर्क गड़बड़ी लॉगिंग का इस्तेमाल करने की ज़रूरत है, तोReport-To
(v0) का इस्तेमाल करें. नेटवर्क की गड़बड़ी को लॉग करने की सेटिंग फ़िलहाल, Reporting API v1 में यह सुविधा काम नहीं करती. नेटवर्क में गड़बड़ी को लॉग करने के नए तरीके से जब तक उपलब्ध न हो, तब तक डेवलप करने के लिए, Reporting API v0 का इस्तेमाल करें. अगर आपको नेटवर्क की गड़बड़ी को लॉग करने की ज़रूरत है के साथ-साथ अन्य तरह की रिपोर्ट,Report-To
(v0) औरReporting-Endpoints
(v1) दोनों का इस्तेमाल करें. v0 आपको नेटवर्क गड़बड़ी लॉगिंग देता है और v1 आपको अन्य सभी प्रकार की रिपोर्ट देता है.
माइग्रेशन का तरीका
इस माइग्रेशन में आपका लक्ष्य उन रिपोर्ट को खोने से रोकना है जो आपको v0 के साथ मिलती थीं.
पहला चरण (अभी करें): दोनों हेडर इस्तेमाल करें:
Report-To
(v0) औरReporting-Endpoints
(v1).इससे आपको ये फ़ायदे मिलते हैं:
- ये रिपोर्ट, Chrome और Edge क्लाइंट के लिए
Reporting-Endpoints
(v1) वर्शन की मदद से मिलती हैं. - Chrome और Edge के पुराने क्लाइंट की रिपोर्ट,
Report-To
(v0) की मदद से मिली.
Reporting-Endpoints
के साथ काम करने वाले ब्राउज़र इंस्टेंस,Reporting-Endpoints
का इस्तेमाल करेंगे, और वे इंस्टेंस जोReport-To
पर वापस नहीं आएंगे. इनके लिए अनुरोध और रिपोर्ट का फ़ॉर्मेट समान है v0 और v1.- ये रिपोर्ट, Chrome और Edge क्लाइंट के लिए
दूसरा चरण (अभी करें): पक्का करें कि
Reporting-Endpoints
हेडर को उन सभी जवाबों के लिए सेट किया गया हो जिनमें रिपोर्ट जनरेट कर सकती हैं.v0 वर्शन की मदद से, सिर्फ़ कुछ रिस्पॉन्स और अन्य दस्तावेज़ों के लिए रिपोर्टिंग एंडपॉइंट सेट किए जा सकते हैं उस ऑरिजिन के (पेज) इस "ऐंबियंट" का इस्तेमाल करेंगे एंडपॉइंट का इस्तेमाल करें. v1 के साथ, क्योंकि हिसाब लगाने के लिए, आपको उन सभी जवाबों के लिए
Reporting-Endpoints
हेडर सेट करना होगा जो जनरेट हो सकते हैं रिपोर्ट.तीसरा चरण (बाद में शुरू करें): जब आपके सभी या ज़्यादातर उपयोगकर्ताओं ने Chrome या Edge पर अपडेट कर लिया हो इंस्टॉल (96 और इसके बाद के वर्शन) के लिए,
Report-To
(v0) हटाएं और सिर्फ़Reporting-Endpoints
रखें.एक अपवाद: अगर आपको नेटवर्क की गड़बड़ी को लॉग करने वाली रिपोर्ट की ज़रूरत है, तो
Report-To
को नई रिपोर्ट अपडेट होने तक बनाए रखें नेटवर्क की गड़बड़ी को लॉग करने की सुविधा लागू है.
माइग्रेशन कुकबुक में कोड के उदाहरण देखें.
सीएसपी रिपोर्टिंग के लिए माइग्रेशन का तरीका
Content-Security-Policy के दो तरीके हैं उल्लंघन की रिपोर्ट कॉन्फ़िगर की जा सकती हैं:
report-uri
डायरेक्टिव के ज़रिए, सिर्फ़ सीएसपी हेडर के साथ. यह पूरे ब्राउज़र पर काम करता है Chrome, Firefox, Safari, और Edge. रिपोर्ट, कॉन्टेंट के टाइपapplication/csp-report
के साथ भेजी जाती हैं और एक ऐसा फ़ॉर्मैट होना चाहिए जो खास तौर पर सीएसपी के लिए हो. इन रिपोर्ट को "सीएसपी लेवल 2 की रिपोर्ट" कहा जाता है और ऐसा करते हैं Reporting API पर निर्भर नहीं होना चाहिए.- Reporting API में
Report-To
हेडर (लेगसी) या नया वर्शन इस्तेमाल करेंReporting-Endpoints
(v1). यह सिर्फ़ Chrome और Edge पर काम करता है. रिपोर्ट के अनुरोधों में इसका फ़ॉर्मैट, Reporting API के अन्य अनुरोधों की तरह ही होता है. साथ ही, कॉन्टेंट का टाइपapplication/reports+json
एक जैसा होता है.
पहले तरीके (सिर्फ़ report-uri
) का इस्तेमाल करने का सुझाव अब नहीं दिया जाता. साथ ही, दूसरे तरीके का इस्तेमाल करने के कुछ फ़ायदे हैं. खास तौर पर, इससे सभी तरह की रिपोर्ट के लिए रिपोर्टिंग को एक ही तरीके से सेट अप किया जा सकता है. साथ ही, एक सामान्य एंडपॉइंट सेट किया जा सकता है. ऐसा इसलिए, क्योंकि Reporting API⏤CSP से जनरेट होने वाले सभी रिपोर्ट अनुरोधों का और अन्य कुकी का फ़ॉर्मैट application/reports+json
एक ही होता है.
हालांकि, सिर्फ़ कुछ ब्राउज़र पर report-to
काम करता है.
इसलिए, हमारा सुझाव है कि आप report-uri
को Reporting API वाले तरीके (Report-To
) के साथ रखें
या बेहतर, Reporting-Endpoints
). में
report-uri
और report-to
की पहचान करने वाला ब्राउज़र, report-uri
को अनदेखा कर दिया जाएगा अगर report-to
मौजूद है. सिर्फ़ 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 क्लाइंट, दोनों से रिपोर्ट पाएं.तीसरा चरण (बाद में शुरू करें): जब आपके सभी या ज़्यादातर उपयोगकर्ताओं ने Chrome या Edge पर अपडेट कर लिया हो इंस्टॉल (96 और इसके बाद के वर्शन) के लिए,
Report-To
(v0) हटाएं और सिर्फ़Reporting-Endpoints
रखें. नहींreport-uri
ताकि आपको अब भी सिर्फ़ उन ब्राउज़र की रिपोर्ट मिलें जिन पर यह सुविधा काम करती है.
सीएसपी रिपोर्टिंग माइग्रेशन में इन चरणों के लिए कोड के उदाहरण देखें.
माइग्रेशन: कोड का उदाहरण
खास जानकारी
अगर किसी सीओओपी की उल्लंघन की रिपोर्ट पाने के लिए, लेगसी Reporting API (v0) का इस्तेमाल किया जा रहा है
(Cross-Origin-Opener-Policy
हेडर), COEP (Cross-Origin-Embedder-Policy
) या दस्तावेज़ की नीति
(Document-Policy
हेडर): माइग्रेट करते समय, आपको नीति के इन हेडर को खुद बदलने की ज़रूरत नहीं है
Reporting API v1. आपको Report-To
के लेगसी हेडर से नए वर्शन पर माइग्रेट करने की ज़रूरत होगी
Reporting-Endpoints
हेडर.
अगर किसी सीएसपी से जुड़ी उल्लंघन की रिपोर्ट पाने के लिए, लेगसी Reporting API (v0) का इस्तेमाल किया जा रहा है
(Content-Security-Policy
हेडर), आपको इसके हिस्से के रूप में अपना Content-Security-Policy
ट्वीक करना पड़ सकता है
नए Reporting API (v1) पर माइग्रेट करना होगा.
बुनियादी माइग्रेशन
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" }] }
Reporting-Endpoints: main-endpoint="https://reports.example/main", default="https://reports.example/default"
ध्यान दें कि वर्शन 1 की मदद से, अब भी खास एंडपॉइंट के लिए, खास रिपोर्ट टाइप भेजी जा सकती हैं. लेकिन आप हर एंडपॉइंट में सिर्फ़ एक यूआरएल हो सकता है.
सभी पेजों को देखा जा रहा है
app.get("/", (request, response) => { response.set("Report-To", …) response.render(...) }); app.get("/page1", (request, response) => { response.render(...) });
// 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(...) });
सीएसपी रिपोर्टिंग का माइग्रेशन
Content-Security-Policy: ...; report-uri https://reports.example/main
Content-Security-Policy: ...; report-uri https://reports.example/main; report-to main-endpoint Report-To: main-endpoint="https://reports.example/main"
Content-Security-Policy: ...; report-uri https://reports.example/main; report-to main-endpoint Reporting-Endpoints: main-endpoint="https://reports.example/main" Report-To: ...
इसके बारे में और पढ़ें
- Reporting API की मदद से अपने वेब ऐप्लिकेशन की निगरानी करना (Reporting API पर मुख्य पोस्ट)
- खास जानकारी: लेगसी Reporting API (v0)
- खास जानकारी: नया Reporting API (v1)
Nine Koepfer / @enka80 की हीरो इमेज अनस्प्लैश सेक्शन में बदलाव किया गया. इयान का बहुत-बहुत धन्यवाद क्लेलैंड, एजी कितामुरा, और मिलिका मिहाजलीजा को इस बारे में समीक्षाएं और सुझाव देने के लिए लेख पढ़ें.