कस्टम फिंगरप्रिंट
परिचय
ब्राउज़र फिंगरप्रिंटिंग आपके ब्राउज़र और डिवाइस कॉन्फ़िगरेशन जानकारी का उपयोग करके लगभग एक अनोखा “डिजिटल फिंगरप्रिंट” बनाने के लिए करता है, जिसका उपयोग कुकीज़ के बिना भी आपकी ऑनलाइन गतिविधि को ट्रैक करने के लिए किया जा सकता है। अच्छी खबर यह है कि स्क्रैपिंग ब्राउज़र में फिंगरप्रिंट कॉन्फ़िगरेशन वैकल्पिक है। हम ब्राउज़र फिंगरप्रिंट के लिए गहन अनुकूलन क्षमताओं की पेशकश करते हैं, जैसे कि कोर पैरामीटर जैसे ब्राउज़र उपयोगकर्ता एजेंट, समय क्षेत्र, भाषा और स्क्रीन रिज़ॉल्यूशन। कार्यक्षमता को कस्टम स्टार्टअप पैरामीटर के माध्यम से बढ़ाया जा सकता है। यह मल्टी-अकाउंट प्रबंधन, डेटा संग्रह और गोपनीयता संरक्षण जैसे परिदृश्यों के लिए उपयुक्त है, जिसमें स्क्रैपलेस के स्व-निर्मित क्रोमियम ब्राउज़र का उपयोग करके पता लगाने से पूरी तरह से बचा जा सकता है। डिफ़ॉल्ट रूप से, हमारे स्क्रैपिंग ब्राउज़र सेवा का उपयोग करने से प्रत्येक सत्र के लिए एक यादृच्छिक फिंगरप्रिंट उत्पन्न होगा।
कोर क्षमताएँ और सीमाएँ
उपयोगकर्ता-एजेंट नियंत्रण
- क्षमता: HTTP अनुरोध हेडर में उपयोगकर्ता-एजेंट स्ट्रिंग के अनुकूलन का समर्थन करता है, जिससे ब्राउज़र इंजन संस्करण और ऑपरेटिंग सिस्टम प्रकार की परिभाषा की अनुमति मिलती है।
- सीमा: वर्तमान में रेंडरिंग इंजन विवरण (जैसे, WebGL रेंडरिंग सुविधाएँ) को संशोधित करने में असमर्थ।
स्क्रीन रिज़ॉल्यूशन मैपिंग
- क्षमता:
screen.width
औरscreen.height
के लिए वापसी मानों के अनुकूलन का समर्थन करता है ताकि बुनियादी डिवाइस स्क्रीन आकारों का अनुकरण किया जा सके (भौतिक पहलू अनुपात के अनुरूप होना चाहिए)। - सीमा: वर्तमान में डिवाइस पिक्सेल अनुपात (DPR) या रेटिना स्क्रीन विशेषताओं को नकली बनाने में असमर्थ।
प्लेटफ़ॉर्म विशेषता लॉकिंग
- क्षमता:
navigator.platform
(केवल Windows/macOS/Linux समर्थित) के लिए एक निश्चित वापसी मान सेट करने की अनुमति देता है, जो ब्राउज़र फ़ीचर पहचान तर्क को प्रभावित करता है। - सीमा: वर्तमान में ऑपरेटिंग सिस्टम संस्करण संख्या या हार्डवेयर आर्किटेक्चर जानकारी को संशोधित करने में असमर्थ।
अन्य सीमाएँ:
यह सुविधा केवल ब्राउज़र द्वारा मूल रूप से उजागर किए गए मानकीकृत मापदंडों में सीमित समायोजन का समर्थन करती है। इसमें हार्डवेयर-स्तरीय फिंगरप्रिंटिंग या उन्नत व्यवहारिक मास्किंग शामिल नहीं है।
अनुप्रयोग परिदृश्य
- बेसिक मल्टी-अकाउंट आइसोलेशन: उपयोगकर्ता-एजेंट और स्क्रीन रिज़ॉल्यूशन को अलग करके सरल खाता एसोसिएशन पहचान से बचें।
- लाइटवेट डेटा संग्रह: लक्षित वेबसाइट की बुनियादी एंटी-स्क्रैपिंग रणनीतियों (जैसे, उपयोगकर्ता-एजेंट ब्लैकलिस्ट) को दरकिनार करने के लिए एक मुख्यधारा के ब्राउज़र वातावरण (Windows + Chrome) का अनुकरण करें।
- संगतता परीक्षण: विभिन्न ऑपरेटिंग सिस्टम (Windows/macOS) और स्क्रीन आकारों के तहत वेबसाइट के बुनियादी रेंडरिंग तर्क को सत्यापित करें।
संचालन मार्गदर्शिका
फिंगरप्रिंट पैरामीटर विवरण
पैरामीटर नाम | प्रकार | विवरण |
---|---|---|
user_agent | string | ब्राउज़र के HTTP अनुरोध शीर्षलेख में उपयोगकर्ता-एजेंट स्ट्रिंग को परिभाषित करता है, जिसमें ब्राउज़र इंजन, संस्करण संख्या और ऑपरेटिंग सिस्टम जैसी प्रमुख पहचान जानकारी शामिल है। वेबसाइटें क्लाइंट परिवेश की पहचान करने के लिए इस मान का उपयोग करती हैं, जिससे सामग्री अनुकूलन और कार्यक्षमता प्रभावित होती है। डिफ़ॉल्ट मान: ब्राउज़र का अनुसरण करता है |
platform | enum | जावास्क्रिप्ट navigator.platform प्रॉपर्टी के वापसी मान को निर्दिष्ट करता है, जो रनटाइम वातावरण के ऑपरेटिंग सिस्टम प्रकार को दर्शाता है। वैकल्पिक मान “Windows”, “macOS”, या “Linux” हैं। इस पैरामीटर का उपयोग सुविधा पहचान और सिस्टम-संबंधित कार्यों के सक्षम करने के निर्णय के लिए किया जाएगा। डिफ़ॉल्ट मान: Windows |
screen | object | ब्राउज़र द्वारा रिपोर्ट किए गए डिस्प्ले डिवाइस के भौतिक विशेषता मापदंडों को परिभाषित करता है, जिसे सीधे जावास्क्रिप्ट window.screen ऑब्जेक्ट में मैप किया गया है। |
screen.width | number | भौतिक स्क्रीन चौड़ाई (पिक्सेल), screen.width प्रॉपर्टी में मैप किया गया है, मीडिया क्वेरी और उत्तरदायी लेआउट को प्रभावित करता है। डिफ़ॉल्ट मान: यादृच्छिक फिंगरप्रिंट का अनुसरण करता है, न्यूनतम मान 640. |
screen.height | number | भौतिक स्क्रीन ऊँचाई (पिक्सेल), screen.height प्रॉपर्टी में मैप किया गया है, चौड़ाई के साथ मिलकर डिवाइस रिज़ॉल्यूशन विशेषताओं का निर्धारण करता है। डिफ़ॉल्ट मान: यादृच्छिक फिंगरप्रिंट का अनुसरण करता है, न्यूनतम मान 480. |
localization | object | ब्राउज़र के स्थानीयकरण पर्यावरण कॉन्फ़िगरेशन को नियंत्रित करता है, जिसमें भाषा, क्षेत्र और समय क्षेत्र पैरामीटर शामिल हैं, जो प्रदर्शन प्रारूप और सामग्री स्थानीयकरण व्यवहार को प्रभावित करते हैं। |
localization.based_on_ip | boolean | क्या IP के आधार पर समय क्षेत्र और भाषाओं को स्वचालित रूप से सेट करना है। |
localization.timezone | string | IANA समय क्षेत्र डेटाबेस प्रारूप के अनुरूप समय क्षेत्र पहचानकर्ता (जैसे, “Asia/Shanghai”), जावास्क्रिप्ट दिनांक ऑब्जेक्ट और Intl.DateTimeFormat आउटपुट के डिफ़ॉल्ट समय क्षेत्र व्यवहार को नियंत्रित करता है, जो समय क्षेत्र फिंगरप्रिंट का एक प्रमुख घटक है। डिफ़ॉल्ट मान: America/New_York |
localization.languages | [string] | ब्राउज़र की समर्थित भाषा प्राथमिकता सूची, navigator.languages प्रॉपर्टी और HTTP Accept-Language अनुरोध शीर्षलेख में मैप की गई है, वेबसाइट के सामग्री भाषा चयन तर्क का निर्धारण करती है। डिफ़ॉल्ट मान: “en”, “en-US” |
user_agent
प्रकार: string
विवरण: ब्राउज़र के HTTP अनुरोध शीर्षलेख में उपयोगकर्ता-एजेंट स्ट्रिंग को परिभाषित करता है, जिसमें ब्राउज़र इंजन, संस्करण संख्या और ऑपरेटिंग सिस्टम जैसी प्रमुख पहचान जानकारी शामिल है। वेबसाइटें क्लाइंट परिवेश की पहचान करने के लिए इस मान का उपयोग करती हैं, जिससे सामग्री अनुकूलन और कार्यक्षमता प्रभावित होती है।
उदाहरण मान:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
platform
प्रकार: enum
विवरण: जावास्क्रिप्ट navigator.platform
प्रॉपर्टी के वापसी मान को निर्दिष्ट करता है, जो रनटाइम वातावरण के ऑपरेटिंग सिस्टम प्रकार को दर्शाता है। इस पैरामीटर का उपयोग सुविधा पहचान और सिस्टम-संबंधित कार्यों के सक्षम करने के निर्णय के लिए किया जाएगा।
उदाहरण स्वीकार्य मान:
मान | विवरण |
---|---|
”Windows” | Windows ऑपरेटिंग सिस्टम, डिफ़ॉल्ट मान |
”macOS” | macOS ऑपरेटिंग सिस्टम |
”Linux” | Linux ऑपरेटिंग सिस्टम |
screen
प्रकार: object
विवरण: ब्राउज़र द्वारा रिपोर्ट किए गए डिस्प्ले डिवाइस के भौतिक विशेषता मापदंडों को परिभाषित करता है, जिसे सीधे जावास्क्रिप्ट window.screen
ऑब्जेक्ट में मैप किया गया है।
screen.width: भौतिक स्क्रीन चौड़ाई (पिक्सेल), मीडिया क्वेरी और उत्तरदायी लेआउट को प्रभावित करता है, न्यूनतम मान 640. screen.height: भौतिक स्क्रीन ऊँचाई (पिक्सेल), चौड़ाई के साथ मिलकर डिवाइस रिज़ॉल्यूशन विशेषताओं का निर्धारण करता है, न्यूनतम मान 480.
उदाहरण मान:
चौड़ाई | ऊँचाई |
---|---|
1920 | 1080 |
1366 | 768 |
1280 | 720 |
768 | 1280 |
localization
प्रकार: object
विवरण: ब्राउज़र के स्थानीयकरण पर्यावरण कॉन्फ़िगरेशन को नियंत्रित करता है, जिसमें भाषा, क्षेत्र और समय क्षेत्र पैरामीटर शामिल हैं, जो प्रदर्शन प्रारूप और सामग्री स्थानीयकरण व्यवहार को प्रभावित करते हैं।
localization.based_on_ip: क्या IP के आधार पर समय क्षेत्र और भाषाओं को स्वचालित रूप से सेट करना है।
localization.timezone: IANA समय क्षेत्र डेटाबेस प्रारूप के अनुरूप समय क्षेत्र पहचानकर्ता, जावास्क्रिप्ट दिनांक ऑब्जेक्ट और Intl.DateTimeFormat
आउटपुट के डिफ़ॉल्ट समय क्षेत्र व्यवहार को नियंत्रित करता है, जो समय क्षेत्र फिंगरप्रिंट का एक प्रमुख घटक है।
उदाहरण मान:
America/New_York
Asia/Shanghai
Europe/London
localization.languages: ब्राउज़र की समर्थित भाषा प्राथमिकता सूची, navigator.languages
प्रॉपर्टी और HTTP Accept-Language
अनुरोध शीर्षलेख में मैप की गई है, वेबसाइट के सामग्री भाषा चयन तर्क का निर्धारण करती है।
उदाहरण मान:
["fr-FR", "en-US", "zh-CN"]
["en-US", "es-ES", "de-DE"]
संदर्भ: tz डेटाबेस समय क्षेत्रों की सूची
उदाहरण कोड
const { ScrapelessClient } = require('@scrapeless-ai/sdk');
const puppeteer =require('puppeteer-core');
const client = new ScrapelessClient({ apiKey: 'API Key' });
// custom browser fingerprint
const fingerprint = {
user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36',
platform: 'Windows',
screen: {
width: 1280, height: 1024
},
localization: {
languages: ['zh-HK', 'en-US', 'en'], timezone: 'Asia/Hong_Kong',
}
}
// Create browser session and get WebSocket endpoint
const { browserWSEndpoint } = client.browser.create({
session_name: 'sdk_test',
session_ttl: 180,
proxy_country: 'US',
session_recording: true,
fingerprint,
});
(async () => {
const browser = await puppeteer.connect({browserWSEndpoint});
const page = await browser.newPage();
await page.goto('https://www.scrapeless.com');
const info = await page.evaluate(() => {
return {
screen: {
width:screen.width,
height:screen.height,
},
userAgent:navigator.userAgent,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
languages:navigator.languages
};
});
console.log(info);
await browser.close();
})();
नैतिक वक्तव्य
हम जिम्मेदार फिंगरप्रिंट अनुकूलन की वकालत करते हैं:
- केवल कानूनी रूप से अधिकृत परिदृश्यों के लिए (जैसे कि उद्यम डेटा अनुपालन संग्रह, आंतरिक जोखिम नियंत्रण परीक्षण)।
- ऑनलाइन धोखाधड़ी में शामिल होने या उपयोगकर्ता की गोपनीयता का उल्लंघन करने के लिए फर्जी फिंगरप्रिंट का उपयोग करना मना है।