Chrome के उपयोगकर्ता-एजेंट को कम करने की सुविधा के लिए तैयार रहें

Chrome, उपयोगकर्ता की निजता को सुरक्षित रखने के लिए, उपयोगकर्ता एजेंट स्ट्रिंग में शेयर की गई जानकारी को लगातार कम कर रहा है.

हम Chrome 110 (फ़रवरी 2023) से, धीरे-धीरे Android वर्शन और डिवाइस मॉडल के लिए तय वैल्यू उपलब्ध करा रहे हैं. इसकी डिफ़ॉल्ट वैल्यू, K मॉडल के लिए हमेशा Android 10 होगी. अगर आपकी वेबसाइट पर आने वाले लोगों के ऑपरेटिंग सिस्टम वर्शन, Android डिवाइस मॉडल या ब्राउज़र के ज़्यादा जानकारी वाले वर्शन का पता लगाने के लिए उपयोगकर्ता-एजेंट पर भरोसा किया जाता है, तो आपको ज़रूरी कार्रवाई करनी पड़ सकती है. ज़्यादा जानकारी के लिए आगे पढ़ें.

उपयोगकर्ता-एजेंट एक ऐसी स्ट्रिंग है जो उपयोगकर्ता के ब्राउज़र और उसके एनवायरमेंट के बारे में जानकारी देती है—जैसे कि यह जानना कि आपकी साइट पर आने वाला कोई व्यक्ति Android पर Chrome का वर्शन 110 चला रहा है. आपका ब्राउज़र इसे एक एचटीटीपी हेडर में भेजता है और उसे JavaScript के ज़रिए उपलब्ध कराता है.

पूरी उपयोगकर्ता-एजेंट स्ट्रिंग में समस्या यह है कि यह हर अनुरोध पर डिफ़ॉल्ट रूप से ब्राउज़र के बारे में पूरी जानकारी शेयर करता है. यह क्रॉस-साइट ट्रैकिंग की अनुमति देने का एक बड़ा कारक है. हमारा मकसद, इस डेटा को कम से कम इकट्ठा करना है और इसके लिए एपीआई उपलब्ध कराना है, ताकि ज़रूरत पड़ने पर आप डेटा को ऐक्सेस कर सकें.

अब तक उपयोगकर्ता-एजेंट की कमी

हमने पहले से ही डिफ़ॉल्ट रूप से उपलब्ध कुछ उपयोगकर्ता-एजेंट डेटा को हटाना और उसे तय वैल्यू से बदलना शुरू कर दिया है.

Chrome 101 से, हमने माइनर वर्शन नंबर को शून्य से बदल दिया है, जैसे कि Chrome/101.3.2.1, Chrome/101.0.0.0 हो गया है.

Chrome 107 से, हमने डेस्कटॉप ऑपरेटिंग सिस्टम वर्शन और सीपीयू की जानकारी को, प्लैटफ़ॉर्म के लिए तय की गई वैल्यू से बदल दिया है.

Macमैकिन्टोश; Intel Mac OS X 10_15_7
WindowsWindows NT 10.0; विन64; x64
ChromeOSX11; CrOS x86_64 14541.0.0
LinuxX11; Linux x86_64

Chrome 110 और उसके बाद के वर्शन में, Android का ठीक किया गया वर्शन और डिवाइस का मॉडल

हम धीरे-धीरे Android वर्शन और डिवाइस मॉडल के लिए तय वैल्यू की शुरुआत कर रहे हैं. इसकी शुरुआत Chrome 110 से की जा रही है. Pixel 7 पर Android 13 जैसा कुछ देखने के बजाय, K मॉडल पर डिफ़ॉल्ट वैल्यू हमेशा Android 10 रहेगी.

पहले: उपयोगकर्ता एजेंट में Android वर्शन और डिवाइस का मॉडल शामिल होता है

Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, जैसे Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

बाद में: तय Android वर्शन और डिवाइस मॉडल के साथ कम उपयोगकर्ता एजेंट

Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, जैसे Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

उपयोगकर्ता-एजेंट फ़ॉर्मैट में कोई बदलाव नहीं

उपयोगकर्ता एजेंट को कम करने से, उपयोगकर्ता-एजेंट में लौटाए गए वैल्यू बदल जाते हैं. हालांकि, फ़ॉर्मैट में कोई बदलाव नहीं होता. अगर उपयोगकर्ता एजेंट का इस्तेमाल सिर्फ़ ऑपरेटिंग सिस्टम के टाइप या ब्राउज़र के मेजर वर्शन को पढ़ने के लिए किया जाता है, तो वह डेटा पहले की तरह अपडेट होता रहेगा. आपको कोई कार्रवाई करने की ज़रूरत नहीं है.

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

उपयोगकर्ता-एजेंट के विकल्प

अगर ज़्यादा जानकारी वाले डेटा का इस्तेमाल किया जा रहा है, तो यह जांचना हमेशा अच्छा रहता है कि क्या इसके बजाय प्रोग्रेसिव एन्हैंसमेंट या सुविधाओं की पहचान का इस्तेमाल किया जा सकता है.

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

यूज़र-एजेंट क्लाइंट हिंट की मदद से ज़्यादा जानकारी वाले डेटा का अनुरोध करें

उपयोगकर्ता-एजेंट के ज़्यादा जानकारी वाले डेटा को ऐक्सेस करने की कई मान्य वजहें होती हैं. जैसे, डिवाइस के हिसाब से कॉन्टेंट उपलब्ध कराना, धोखाधड़ी रोकने के लिए फ़ंक्शन करना या बारीकी से लॉग इन करना. अगर आपको ज़्यादा जानकारी वाला डेटा चाहिए, तो उसे ऐक्सेस करने के लिए यूज़र-एजेंट क्लाइंट हिंट (UA-CH) एपीआई का इस्तेमाल किया जा सकता है. उपयोगकर्ता-एजेंट की तरह, UA-CH भी एचटीटीपी हेडर या JavaScript के ज़रिए उपलब्ध होता है.

आपने शायद पहले ही Sec-CH-UA- प्रीफ़िक्स के साथ भेजे जा रहे डिफ़ॉल्ट हेडर देखे होंगे. इनसे आपको ब्राउज़र, उसके मेजर वर्शन, ऑपरेटिंग सिस्टम, और ब्राउज़र के मोबाइल डिवाइस होने की जानकारी मिलती है.

Chrome के डिफ़ॉल्ट उपयोगकर्ता-एजेंट क्लाइंट हिंट अनुरोध हेडर:

Sec-CH-UA: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

ज़्यादा डेटा मांगने के लिए, अपने जवाब में Accept-CH हेडर का इस्तेमाल किया जा सकता है. ऐसी स्थिति में, उस Android वर्शन और डिवाइस टाइप को बाद के अनुरोधों में वापस पाने के लिए, Sec-CH-UA-Platform-Version और Sec-CH-UA-Model का इस्तेमाल किया जा सकता है.

प्लैटफ़ॉर्म वर्शन और मॉडल की जानकारी देने वाला, आपके सर्वर से रिस्पॉन्स हेडर:

Accept-CH:
  Sec-CH-UA-Platform-Version,
  Sec-CH-UA-Model

Chrome से Android वर्शन और मॉडल के नाम के साथ हेडर का अनुरोध करें:

Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"

JavaScript में यही काम userAgentData एपीआई पर getHighEntropyValues() को कॉल करके भी किया जा सकता है. इसके लिए, आपको उन वैल्यू के कलेक्शन को पास करना होगा जो आपको चाहिए: platformVersion और model. इससे, खास वैल्यू वाले ऑब्जेक्ट के साथ प्रॉमिस मिलेगा.

navigator.userAgentData
 .getHighEntropyValues(
   ['platformVersion', 'model']
 ).then(ua => { console.log(ua)
 });

{
  "platformVersion": "13.0.0",
  "model": "Pixel 7"
}

क्रॉस-ऑरिजिन या शुरुआती अनुरोध

अगर आपके पेज पर ऐसे क्रॉस-ऑरिजिन रिसॉर्स हैं जिन्हें इन वैल्यू की ज़रूरत है, तो इन्हें ऐक्सेस करने की अनुमति दें. इसके लिए, Permissions-Policy एचटीटीपी हेडर का इस्तेमाल करें या अपने एचटीएमएल में Delegate-CH मेटा टैग का इस्तेमाल करें.

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

ज़्यादा जानें

कम की गई उपयोगकर्ता-एजेंट स्ट्रिंग को देखने के लिए, यह तरीका देखें:

  • goo.gle/reduced-ua-demo पर अपने डिवाइस के लिए, उपयोगकर्ता एजेंट स्ट्रिंग में हुई कमी देखें
  • goo.gle/ua-ch-demo पर अपने डिवाइस के लिए, सभी JavaScript और एचटीटीपी हेडर वाले उपयोगकर्ता-एजेंट क्लाइंट हिंट देखें
  • #reduce-user-agent Chrome फ़्लैग को चालू करके अपने ब्राउज़र में कम की गई उपयोगकर्ता-एजेंट स्ट्रिंग भेजें.

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

हमारे पास उपयोगकर्ता-एजेंट रिडक्शन के लैंडिंग पेज पर और संसाधन मौजूद हैं. आप हमारे खास उपयोगकर्ता-एजेंट को कम करने वाले GitHub रेपो पर भी समस्याओं के बारे में बता सकते हैं.