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

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

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

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

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

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

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

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

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

MacMacintosh; Intel Mac OS X 10_15_7
WindowsWindows NT 10.0; Win64; x64
ChromeOSX11; CrOS x86_64 14541.0.0
LinuxX11; Linux x86_64

ठीक किया गया Android वर्शन और डिवाइस मॉडल. इसकी शुरुआत Chrome 110 से होती है

Chrome 110 से शुरू करते हुए, हम धीरे-धीरे Android वर्शन और डिवाइस मॉडल के लिए एक फ़िक्स्ड वैल्यू लॉन्च कर रहे हैं. 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

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

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

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

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

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

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

उपयोगकर्ता एजेंट क्लाइंट हिंट की मदद से, ज़्यादा जानकारी वाले डेटा का अनुरोध करना

उपयोगकर्ता-एजेंट के ज़्यादा डेटा को ऐक्सेस करने की कई मान्य वजहें हैं. जैसे, खास तौर पर डिवाइस के हिसाब से कॉन्टेंट उपलब्ध कराना, धोखाधड़ी रोकने वाली सुविधा या बारीकी से लॉग इन करना. अगर आपको ज़्यादा जानकारी की ज़रूरत है, तो इसे ऐक्सेस करने के लिए User-Agent Client Hints (UA-CH) API का इस्तेमाल करें. उपयोगकर्ता-एजेंट की तरह, 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 पर your डिवाइस के लिए, सभी JavaScript और एचटीटीपी हेडर User-Agent Client Hints देखें
  • #reduce-user-agent Chrome फ़्लैग को चालू करके, अपने ब्राउज़र में कम की गई उपयोगकर्ता-एजेंट स्ट्रिंग भेजें.

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

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