प्रतिनिधि इंटरव्यू विषय

Reporting API: आप नियंत्रणीय फ़्रंटएंड सुरक्षा और डेप्रिकेशन ऑब्जर्वेबिलिटी कैसे बनाते हैं?

फ्रंटएंडकठिन
Offer.cc संपादकीय टीमप्रकाशित अपडेट किया गया

प्रश्न

एक फ़्रंटएंड Reporting API समाधान डिज़ाइन करें जो CSP, Permissions-Policy, डेप्रिकेशन और क्रैश रिपोर्ट्स एकत्र करता है, और कम्पैटिबिलिटी, नॉइज़ कंट्रोल और प्राइवेसी जोखिमों की व्याख्या करें।

प्रॉम्प्ट और संदर्भ

Reporting API ब्राउज़रों को CSP, Permissions-Policy, Integrity-Policy, COEP, डेप्रिकेशन और इंटरवेंशन रिपोर्ट्स के लिए एक सामान्य तंत्र प्रदान करता है। रिपोर्ट्स को ReportingObserver के साथ इन-पेज पढ़ा जा सकता है या ब्राउज़र द्वारा किसी रिमोट एंडपॉइंट पर POST किया जा सकता है। यह इंटरव्यू इस बात का परीक्षण करता है कि क्या आप यूज़र डेटा को लंबे समय तक रहने वाले लॉग्स में कॉपी किए बिना ब्राउज़र सिग्नल्स को विश्वसनीय ऑब्जर्वेबिलिटी में बदल सकते हैं।

इंटरव्यूअर क्या मूल्यांकन करता है

  • क्या आप इन-पेज ऑब्जर्वर्स और रिमोट एंडपॉइंट्स की विश्वसनीयता सीमाओं में अंतर करते हैं।
  • क्या आप Reporting-Endpoints, रिपोर्ट-टाइप रूटिंग, सैंपलिंग और डुप्लीकेशन हटाने (deduplication) को डिज़ाइन करते हैं।
  • क्या आप URLs, यूज़र एजेंट्स और बिज़नेस पैरामीटर्स में प्राइवेसी जोखिमों को संभालते हैं।
  • क्या आप रिपोर्ट-ओनली रोलआउट, अलर्ट्स, फिक्सेस और रिग्रेशन वेरिफिकेशन को आपस में जोड़ते हैं।

पहले स्पष्ट करने योग्य प्रश्न

पुष्टि करें कि क्या लक्ष्य सुरक्षा-नीति माइग्रेशन, ब्राउज़र डेप्रिकेशन अपग्रेड्स या क्रैश सुराग हैं। ब्राउज़र सपोर्ट, क्रॉस-ओरिजिन पेजेज़, डेटा रिटेंशन, कम्प्लायंस, एंडपॉइंट बर्स्ट क्षमता और क्या रॉ URLs किसी थर्ड पार्टी को भेजे जा सकते हैं, इसे स्पष्ट करें।

30-सेकंड का उत्तर

मैं चार लेयर्स का उपयोग करूँगा: कलेक्शन, ट्रांसपोर्ट, प्रोसेसिंग और गवर्नेंस। नीतियों को रिपोर्ट-ओनली मोड में शुरू करें, Reporting-Endpoints के माध्यम से प्रकारों को रूट करें, तत्काल डिबगिंग के लिए ऑब्जर्वर्स का उपयोग करें और पेज लाइफ़साइकिल के बाहर एकत्रीकरण (aggregation) के लिए रिमोट रिपोर्ट्स का उपयोग करें। अलर्टिंग और रिग्रेशन टेस्ट्स से पहले सर्वर रेट लिमिट्स, डिडुप्लीकेशन, रिडैक्शन और सैंपलिंग लागू करता है। डिलीवरी की गारंटी नहीं है, इसलिए यह वास्तविक एरर मॉनिटरिंग की जगह नहीं ले सकता।

चरण-दर-चरण गहन विश्लेषण

1. कलेक्शन पाथ्स चुनें

ReportingObserver, types और buffered विकल्पों के साथ डेवलपमेंट और इन-पेज डायग्नोसिस के लिए उपयुक्त है। एक रिमोट एंडपॉइंट यूज़र एजेंट से application/reports+json POSTs प्राप्त करता है; यह पेज क्रैश के बाद भी सुरागों को सुरक्षित रख सकता है और प्रोडक्शन एग्रीगेशन के लिए बेहतर है। दोनों पाथ्स को अभी भी ब्राउज़र-कम्पैटिबिलिटी और डेटा लॉस हैंडलिंग की आवश्यकता होती है।

2. एंडपॉइंट्स और रूटिंग डिज़ाइन करें

Reporting-Endpoints के साथ नेम्ड एंडपॉइंट्स घोषित करें, फिर CSP, COEP या Permissions-Policy रिपोर्टिंग डायरेक्टिव्स से डेस्टिनेशन्स चुनें। type द्वारा सुरक्षा, डेप्रिकेशन और विश्वसनीयता पाइपलाइनों में रूट करें। crash और deprecation जैसी रिपोर्ट्स के लिए एक default एंडपॉइंट प्रदान करें जिनमें एक समर्पित हेडर की कमी होती है। इनजेशन के समय कंटेंट टाइप और बॉडी साइज़ को वैलिडेट करें।

3. नॉइज़ और प्राइवेसी को नियंत्रित करें

साइट, वर्ज़न, रिपोर्ट टाइप और एरर फ़िंगरप्रिंट के आधार पर डिडुप्लीकेट करें; प्रत्येक स्रोत को रेट-लिमिट करें; और एग्रीगेशन से पहले क्वेरी पैरामीटर्स, अकाउंट आइडेंटिफ़ायर्स और संवेदनशील पाथ्स को हटा दें। केवल डायग्नोस्टिक फ़ील्ड्स रखें, कम रिटेंशन लागू करें और एक्सेस का ऑडिट करें। गंभीरता और नए-वर्ज़न डेल्टास के आधार पर सैंपलिंग को एडजस्ट करें ताकि एक कम्पैटिबिलिटी समस्या अलर्ट स्टॉर्म न बन जाए।

4. गवर्नेंस लूप को पूरा करें

पॉलिसी को सख्त करने से पहले रिपोर्ट-ओनली मोड में एक बेसलाइन स्थापित करें। नई डेप्रिकेशन रिपोर्ट्स को ब्राउज़र वर्ज़न्स और रिलीज़ बैचेस के साथ सहसंबंधित (correlate) करें, फिर ऑटोमेटेड रिग्रेशन या WebDriver-जनरेटेड टेस्ट रिपोर्ट्स के साथ फ़िक्सेस को सत्यापित करें। एंडपॉइंट की सफलता, लेटेंसी, ड्रॉप्स और रिपेयर के समय की निगरानी करें। एक डिग्रेडेड पाथ बनाए रखें जो पेज को ब्लॉक न कर सके।

एक सशक्त उत्तर का उदाहरण

मैं सबसे पहले कलेक्शन लक्ष्य और डेटा सीमा को सीमित करूँगा। पॉलिसी माइग्रेशन के लिए, मैं रिपोर्ट-ओनली मोड में शुरुआत करूँगा, Reporting-Endpoints के माध्यम से CSP, Permissions-Policy और डेप्रिकेशन रिपोर्ट्स को एक नियंत्रित एंडपॉइंट पर भेजूँगा, और उन्हें प्रकार के अनुसार रूट करूँगा। ReportingObserver तत्काल डायग्नोसिस के लिए है; प्रोडक्शन फैक्ट्स रिमोट एग्रीगेशन से आते हैं, इस स्पष्ट चेतावनी के साथ कि ब्राउज़र डिलीवरी की गारंटी नहीं देते हैं।

सर्वर application/reports+json को वैलिडेट करता है, साइज़ और रेट लिमिट्स लागू करता है, और साइट, वर्ज़न, टाइप और फ़िंगरप्रिंट के आधार पर डिडुप्लीकेट करता है। यह URL क्वेरी पैरामीटर्स और अकाउंट आइडेंटिफ़ायर्स को हटाता है, केवल एक वर्ज़न-लेवल यूज़र-एजेंट डायमेंशन रखता है, और एक्सेस ऑडिट के साथ शॉर्ट रिटेंशन लागू करता है। अलर्ट्स सैंपलिंग के लिए गंभीरता, रिलीज़ डेल्टास और प्रभावित पेजों का उपयोग करते हैं। एक फिक्स के बाद, रिग्रेशन टेस्ट्स पुष्टि करते हैं कि रिपोर्ट रेट कम हो गया है। पाइपलाइन को पेज निष्पादन को ब्लॉक नहीं करना चाहिए या फ़्रंटएंड एरर और रियल-यूज़र मॉनिटरिंग को प्रतिस्थापित नहीं करना चाहिए।

सामान्य गलतियाँ

  • केवल ReportingObserver का उपयोग करना और पेज क्रैश होने पर सुराग खो देना।
  • लंबे समय के लॉग्स में रॉ URLs, क्वेरी पैरामीटर्स या पूर्ण यूज़र एजेंट्स लिखना।
  • ड्रॉप्स, थ्रॉटलिंग और ब्राउज़र अंतरों की निगरानी किए बिना यह मान लेना कि कोई एंडपॉइंट डिलीवरी की गारंटी देता है।
  • बिना किसी बेसलाइन या चरणबद्ध रोलआउट के रिपोर्ट-ओनली निष्कर्षों को ब्लॉकिंग पॉलिसी मानना।

फ़ॉलो-अप प्रश्न और उत्तर

आप इन-पेज ऑब्जर्वर और रिमोट एंडपॉइंट के बीच कैसे चयन करते हैं?

एक ऑब्जर्वर को डिबग करना और पेज कोड के साथ प्रोसेस करना आसान है, लेकिन यह पेज के सक्रिय रहने पर निर्भर करता है। एक रिमोट एंडपॉइंट स्वतंत्र रूप से एग्रीगेट करता है और प्रोडक्शन या क्रैश सुरागों को सुरक्षित रखता है। वे दोनों एक साथ चल सकते हैं, जहाँ एक डिडुप्लीकेशन की डबल काउंटिंग को रोकती है।

आप रिपोर्टिंग सिस्टम को यूज़र जानकारी लीक करने से कैसे रोकते हैं?

इनजेशन पर फ़ील्ड अलाउलिस्ट्स, URL रिडैक्शन, साइज़ लिमिट्स और रेट कंट्रोल्स लागू करें। पूर्ण आइडेंटिफ़ायर्स के बजाय वर्ज़न डायमेंशन्स रखें, एन्क्रिप्शन और ऑडिट के साथ शॉर्ट रिटेंशन का उपयोग करें, और क्रॉस-टीम एक्सेस को प्रतिबंधित करें।

रिपोर्ट वॉल्यूम अचानक क्यों बढ़ सकता है?

एक नए रिग्रेशन, पॉलिसी मिसकॉन्फ़िगरेशन, बॉट ट्रैफ़िक और पुनः प्रयासों (retries) को अलग करने के लिए रिलीज़, ब्राउज़र, साइट, टाइप और फ़िंगरप्रिंट के अनुसार स्लाइस करें। किसी रिलीज़ को एस्केलेट या रोल बैक करने से पहले एंडपॉइंट थ्रॉटलिंग और सैंपलिंग की जाँच करें।

सार्वजनिक स्रोत

संबंधित प्रश्न