ClientRects फिंगरप्रिंट क्या है? मल्टी-अकाउंट एनवायरनमेंट कंसिस्टेंसी गाइड
मूल निष्कर्ष: टेस्ट पेज ClientRects से वेब एलिमेंट्स के लेआउट बॉक्स पढ़ता है, यानी दशमलव वाली चौड़ाई, ऊँचाई और निर्देशांकों का समूह। दो एनवायरनमेंट की रीडिंग मेल नहीं खाती, तो कारण आमतौर पर फ़ॉन्ट रेंडरिंग, स्क्रीन स्केलिंग या सिस्टम अंतर में होता है। यह एनवायरनमेंट कंसिस्टेंसी का हिस्सा है, अलग से डिसेबल नहीं किया जा सकता; तरीका है फिंगरप्रिंट सेटिंग्स में मोड चुनना और फिर व्यावहारिक जाँच।
"कंसिस्टेंसी जाँच फिंगरप्रिंट तक पहुँच गई, दोनों एनवायरनमेंट की ClientRects रीडिंग अलग है।" या फिर इसके उलट: टेस्ट पेज ने यह पंक्ति पीले रंग में चिह्नित की है, समझ नहीं आ रहा कि समस्या गिनी जाएगी या नहीं। ऐसे सवालों की साझा बात यह है कि पैरामीटर का नाम देखा है, पर वह क्या मापता है और बदलने से क्या असर पड़ेगा, इसका भरोसा नहीं।
यह लेख जाँच के क्रम में चार सवालों के जवाब देता है: यह रीडिंग क्या है, दो एनवायरनमेंट मेल क्यों नहीं खाते, एनवायरनमेंट कंसिस्टेंसी में इसका क्या मतलब है, और MostMate एंटी-डिटेक्ट ब्राउज़र में इसे कैसे सेट और कैसे सत्यापित करें। MostMate हर अकाउंट के लिए एक-दूसरे से अलग ब्राउज़र एनवायरनमेंट तैयार करता है; ClientRects फिंगरप्रिंट सेटिंग्स की एक पंक्ति है।
ClientRects फिंगरप्रिंट आखिर है क्या
एक वाक्य में: ClientRects फिंगरप्रिंट पेज एलिमेंट्स के सटीक बॉक्स निर्देशांक पढ़ता है। getBoundingClientRect() कॉल से एलिमेंट की चौड़ाई, ऊँचाई और व्यूपोर्ट के सापेक्ष स्थिति मिलती है; MDN दस्तावेज़ की परिभाषा है "एलिमेंट का आकार और व्यूपोर्ट के सापेक्ष उसकी स्थिति लौटाता है"। लाइन तोड़ने वाले इनलाइन एलिमेंट्स को getClientRects() से पढ़ते हैं, हर लाइन का एक आयत।
असली बात संख्याओं के स्वरूप में है। निर्देशांक पूर्णांक नहीं होते। दशमलव के बाद कई अंकों वाले फ़्लोट होते हैं, जैसे 147.359375। वेबसाइट को किसी अनुमति की ज़रूरत नहीं; एक स्क्रिप्ट पेज में छिपा एलिमेंट बनाती है, उसमें तय टेक्स्ट भरती है, आयत पढ़कर सिग्नेचर जोड़ लेती है, और यह पूरा काम सामान्य लेआउट गणना के बीच घुला रहता है।
ऑपरेटर को इस पर ध्यान देने के तीन कारण हैं। इसे डिसेबल नहीं किया जा सकता, लेआउट गणना वेबपेज के सामान्य काम की नींव है; यह सेशनों के बीच स्थिर रहता है, एक ही डिवाइस पर रीडिंग लगभग नहीं बदलती; और यह फ़ॉन्ट व स्क्रीन पैरामीटरों की तरह एनवायरनमेंट घोषणा का हिस्सा है, जिसे रिस्क कंट्रोल क्रॉस-चेक में लेता है।

दो एनवायरनमेंट की रीडिंग क्यों मेल नहीं खाती
एक ही टेक्स्ट की चौड़ाई पूरी पाइपलाइन से बनती है, हर परत छाप छोड़ती है:
- टेक्स्ट टाइपोग्राफी इंजन: Windows, macOS और Linux का अपना-अपना इंजन है; एक ही फ़ॉन्ट, एक ही स्ट्रिंग के अक्षर-अंतर अलग निकलते हैं।
- स्क्रीन स्केलिंग: हाई-रेज़ोल्यूशन स्क्रीन और सिस्टम स्केल राउंडिंग के दाने बदलते हैं, दशमलव अंक उसी से खिसकते हैं।
- फ़ॉन्ट फ़ॉलबैक: माँगा फ़ॉन्ट इंस्टॉल नहीं है तो बैकअप फ़ॉन्ट लगता है, चौड़ाई उसी से बदल जाती है।
- ब्राउज़र इंजन और पेज ज़ूम: अलग कर्नेल की लाइन-ब्रेकिंग अलग है, पेज ज़ूम सीधे लेआउट पाइपलाइन में जाता है।
ये अंतर छोटे हैं, अकेला एक नंबर कुछ सिद्ध नहीं करता। जोड़ दें तो "यह डिवाइस कौन-सा सिस्टम, कौन-सा रेंडरिंग स्टैक चला रहा है" का ब्यौरा बन जाते हैं। यह फ़ॉन्ट फिंगरप्रिंट का करीबी रिश्तेदार है: फ़ॉन्ट इन्यूमरेशन सूची सीधे पूछती है, ClientRects रेंडरिंग का नतीजा मापता है, दोनों एक-दूसरे की पुष्टि कर सकते हैं। डिवाइस- और विंडो-स्तर के साइज़ पैरामीटर स्क्रीन रेज़ोल्यूशन वाले लेख में लिखे हैं; ClientRects एक स्तर गहरा एलिमेंट-स्तर सिग्नल है।
एनवायरनमेंट कंसिस्टेंसी में इस रीडिंग की भूमिका क्या है
इसकी सबसे बड़ी कीमत क्रॉस-वेरिफिकेशन में है: एनवायरनमेंट घोषणा के लिए एक ऐसा मापा हुआ रेफ़रेंस देना जो टिक जाए। एनवायरनमेंट खुद को Windows बताता है, आम फ़ॉन्ट का सेट लटका है, पर मापी गई टेक्स्ट चौड़ाई किसी दूसरे सिस्टम की राउंडिंग शैली निकलती है। दो सिग्नल टकरा गए। रिस्क कंट्रोल को सिद्धांत समझने की ज़रूरत नहीं, सिर्फ़ टकराव देखना है।
कॉन्फ़िगरेशन की कंसिस्टेंसी, एकल पैरामीटर की दुर्लभता से ज़्यादा जाँचने लायक है। दो एनवायरनमेंट एक ही इंसान के गिने जाएँगे या नहीं, यह जाँचते समय आयत रीडिंग को फिंगरप्रिंट पैनल की घोषित ऑपरेटिंग सिस्टम और फ़ॉन्ट लिस्ट के साथ एक समूह में रखें; चार-आयामी स्व-जाँच का तर्क घोषणा और माप को सरेखित करना है।
एक अनदेखा इस्तेमाल भी है: स्केलिंग का पता लगाना। आयतों की राउंडिंग शैली से पेज का चालू ज़ूम लेवल और सिस्टम स्केल उलटकर पढ़ा जा सकता है; यह जानकारी भी घोषित स्क्रीन पैरामीटरों के साथ एक-दूसरे की जाँच करने वाला सिग्नल जोड़ा है। एनवायरनमेंट के बीच स्केल व्यवहार में ज़बरदस्त फ़र्क हो तो रीडिंग का अंतर सामान्य है; निष्कर्ष से पहले स्केल स्थिति देख लें।
MostMate में कैसे सेट करें
MostMate के फिंगरप्रिंट सेटिंग्स फ़ॉर्म में ClientRects अकेली एक पंक्ति है, बगल में Canvas, AudioContext, SpeechVoices और WebGL इमेज हैं। इसके बस दो मोड हैं: Real मोड मशीन की असली टाइपोग्राफी लौटाता है, Noise मोड यानी नॉइज़ मोड।
सीन के हिसाब से मोड चुनें। दो शर्तें पूरी हों तो Real चुनें: इस कंप्यूटर का कॉन्फ़िगरेशन टारगेट दर्शक का आम कॉन्फ़िगरेशन है, जैसे मिलता-जुलता Windows और डिफ़ॉल्ट फ़ॉन्ट का जोड़ा; और बिज़नेस पेज को टाइपोग्राफी सटीकता चाहिए, लेआउट वैल्यू बदलने की इजाज़त नहीं। Real मोड की कीमत यह है कि मशीन के असली रेंडरिंग लक्षण ज्यों के त्यों उजागर रहते हैं; कंप्यूटर पर ढेर सारे दुर्लभ फ़ॉन्ट इंस्टॉल हों तो पहचान की तीखाई भी बढ़ती है।
कई एनवायरनमेंट एक ही कंप्यूटर साझा करें तो Noise चुनें। हर एनवायरनमेंट की रीडिंग अब एक ही मशीन की ओर इशारा नहीं करती; यही इसका मुख्य इस्तेमाल है। कीमत यह है कि एक बंधन स्वीकार करना पड़ता है। आयत वैल्यू के बीच गणितीय संबंध होते हैं। पूरे बॉक्स के निर्देशांक भीतरी टेक्स्ट के आयतों से मिलने चाहिए, एक जैसी स्ट्रिंग की चौड़ाई अनुपात में होनी चाहिए। नॉइज़ अगर सिर्फ़ कुछ रीडिंग पर गिरे तो ये संबंध टूटते हैं, और उलटा ज़्यादा चौखटा विरोध-सिग्नल बन जाता है। इसलिए मोड चुनने के बाद असली जाँच ज़रूरी है, सेट कर दिया तो हो गया जैसी सोच नहीं।
Noise मोड पर जाने के बाद फिंगरप्रिंट प्रीव्यू पैनल में ClientRects पंक्ति छह अंकों के कोड वाली वैल्यू दिखाती है। कोड सिर्फ़ नॉइज़ कॉन्फ़िगरेशन की पहचान है; असली उजागर हैश देखने के लिए एनवायरनमेंट खोलकर एक बार टेस्ट पेज चलाना पड़ता है।

सेट करने के बाद कैसे सत्यापित करें
सत्यापन दो चरण में: पहले बदलाव देखें, फिर संगति देखें।
चरण 1: दोनों एनवायरनमेंट की रीडिंग तुलना करें। दो एनवायरनमेंट बनाएँ, एक में Real दूसरे में Noise चुनें, और हर एक में BrowserLeaks का Client Rects टेस्ट पेज खोलें। एक ही मशीन पर Real एनवायरनमेंट के आयत वैल्यू एक जैसे होने चाहिए। Noise एनवायरनमेंट Real से अलग होना चाहिए, दो Noise एनवायरनमेंट भी आपस में अलग हों। रिकॉर्ड करते समय ध्यान दशमलव के बाद तीसरे अंक से आगे के हिस्से पर रखें, फ़र्क आमतौर पर वहीं से शुरू होता है। हर एनवायरनमेंट की रीडिंग नोट कर लें, यही उस एनवायरनमेंट का बेसलाइन है।
चरण 2: संगति जाँचें। बदलाव पहला कदम; आगे क्रॉस-चेक झेलने पड़ेंगे:
- सेशन बदलकर फिर से मापें: एक ही एनवायरनमेंट की वैल्यू स्थिर रहनी चाहिए; उछलती रीडिंग खुद असामान्यता का सिग्नल है।
- फिंगरप्रिंट पैनल की घोषित ऑपरेटिंग सिस्टम और फ़ॉन्ट लिस्ट से तुलना करें: रेंडरिंग शैली मेल खानी चाहिए, एक सिग्नल Windows कहे और दूसरा macOS नहीं।
- कुछ रोज़मर्रा के पेज सामान्य चलाकर देखें कि टाइपोग्राफी में दिखने वाली गड़बड़ नहीं है, खासकर फ़ॉर्म, बटन और लाइन-ब्रेक टेक्स्ट में।
तीनों पास तो पैरामीटर पूरा सेट; वरना मोड चुनाव दोबारा जाँचें।
आम सवाल
टेस्ट पेज पर ClientRects लाल है, क्या एनवायरनमेंट में ज़रूर समस्या है?
ज़रूरी नहीं। पहले दो बातें देखें: एनवायरनमेंट की घोषित सिस्टम और फ़ॉन्ट, रीडिंग शैली से मेल खाती है या नहीं; स्केल स्थिति स्क्रीन पैरामीटरों से टिकती है या नहीं। दोनों जगह सब ठीक हो तो एकल लाल चिह्न पर घबराने की ज़रूरत नहीं; रीडिंग शैली घोषणा से साफ़ टकराती है, तभी फिंगरप्रिंट सेटिंग्स में जाकर मोड जाँचें।
ब्राउज़र ज़ूम बदलने से ClientRects फिंगरप्रिंट बदलता है?
बदलता है। ज़ूम सीधे लेआउट पाइपलाइन में जाता है, आयत की राउंडिंग उसी से बदलती है। पर ज़ूम हर यूज़र का सामान्य व्यवहार है। जोखिम कहीं और है: स्केल स्थिति एनवायरनमेंट की घोषित स्क्रीन पैरामीटरों से न मिले। सेशनों के बीच स्थिर हिस्सा अब भी रेंडरिंग स्टैक तय करता है।
क्या ClientRects को डिसेबल किया जा सकता है?
नहीं। लेआउट गणना वेबपेज के सामान्य काम की नींव है; टाइपोग्राफी, पॉपअप पोज़िशनिंग और एनिमेशन सब इसी पर टिके हैं। ब्राउज़र बंद करने का स्विच नहीं देता। इंडस्ट्री का तरीका डिसेबल नहीं, सटीकता घटाना है: Tor Browser माप को राउंड करके पहचान योग्य अंतर घटाता है।
हेडलेस ब्राउज़र एलिमेंट साइज़ पर आसानी से क्यों पकड़े जाते हैं?
हेडलेस एनवायरनमेंट का डिफ़ॉल्ट व्यूपोर्ट बहुत पक्का होता है, टेक्स्ट रेंडरिंग स्टैक एकरस होता है। मापे गए आयत और उसके घोषित UA का दावा किया डिवाइस अक्सर मेल नहीं खाते। रिस्क कंट्रोल rect को बाकी घोषणा पैरामीटरों से क्रॉस-चेक करता है, ऐसे एनवायरनमेंट आसानी से छँट जाते हैं।
निष्कर्ष
कंसिस्टेंसी जाँच में ClientRects की भूमिका बहुत स्पष्ट है: एनवायरनमेंट घोषणा और मापी गई टाइपोग्राफी को साथ रखकर मिलान करें, टकराव ही सिग्नल है। टेस्ट पेज लाल दिखे तो पहले घोषणा पैरामीटरों और स्केल स्थिति से मिलान करें, कंसिस्टेंसी की खाई पक्की होने पर फिंगरप्रिंट सेटिंग्स में जाकर संभालें।
MostMate ClientRects को बाकी रेंडरिंग पैरामीटरों के साथ उसी फिंगरप्रिंट सेटिंग्स फ़ॉर्म में रखता है; Real और Noise दोनों मोड रीडिंग के स्रोत को कंट्रोल करते हैं। प्रोडक्ट की पूरी तस्वीर MostMate ऑफिशियल साइट पर देख लें। एनवायरनमेंट बन जाने के बाद दो-एनवायरनमेंट मिलान से रीडिंग बेसलाइन नोट कर लेना, किसी भी कॉन्फ़िगरेशन ट्रिक से ज़्यादा काम का है। चाहें तो MostMate डाउनलोड करें और Real व Noise का फ़र्क खुद मापकर देखें।
MOSTMATE
कई खातों का सुरक्षित प्रबंधन, अब आसान
पहले खाते से शुरुआत करें और MostMate के साथ कई खातों का अधिक सुरक्षित, स्मार्ट और कुशल संचालन बनाएँ।
- अलग प्रोफ़ाइल। सुसंगत पहचान।
- AI ऑटोमेशन · खाते की स्थिति · टीम संचालन



