Back to Blog

PerimeterX और Akamai की पहचान को कैसे बायपास करें

PerimeterX और Akamai के काम करने के तंत्रों का विश्लेषण करते हैं, उनकी पहचान के तरीकों का अध्ययन करते हैं और प्रॉक्सी, ब्राउज़र फ़िंगरप्रिंट और व्यवहार अनुकरण का उपयोग करके एक प्रभावी बाईपास रणनीति बनाते हैं।

📅December 23, 2025
```html

PerimeterX और Akamai की सुरक्षा को बाईपास करना: एंटी-डिटेक्शन के व्यावहारिक तरीके

PerimeterX और Akamai Bot Manager — ये दो सबसे उन्नत बॉट सुरक्षा समाधान हैं, जिन्हें सबसे बड़े ई-कॉमर्स प्लेटफार्मों, वित्तीय सेवाओं और कॉर्पोरेट साइटों द्वारा उपयोग किया जाता है। ये सिस्टम ब्राउज़र, उपयोगकर्ता के व्यवहार और नेटवर्क विशेषताओं के सैकड़ों मापदंडों का विश्लेषण करते हैं, एक बहुस्तरीय सुरक्षा बनाते हैं, जिसे केवल IP पते को बदलने से बाईपास नहीं किया जा सकता।

इस मार्गदर्शिका में, हम दोनों सिस्टम की आर्किटेक्चर का विस्तार से विश्लेषण करेंगे, उनके डिटेक्शन के तरीकों का अध्ययन करेंगे और वास्तविक केसों और तकनीकी प्रयोगों पर आधारित एक समग्र बाईपास रणनीति बनाएंगे।

PerimeterX और Akamai की आर्किटेक्चर: डिटेक्शन कैसे काम करता है

PerimeterX (अब HUMAN Security) और Akamai Bot Manager बहुस्तरीय सुरक्षा प्रणाली के रूप में कार्य करते हैं, जो अनुरोध के प्रसंस्करण के विभिन्न चरणों में समाहित होते हैं। उनकी आर्किटेक्चर को समझना बाईपास रणनीति विकसित करने के लिए अत्यंत महत्वपूर्ण है।

PerimeterX की आर्किटेक्चर

PerimeterX तीन चरणों में काम करता है। पहले चरण में, JavaScript-सेंसर HTML पृष्ठ में समाहित किया जाता है और ग्राहक के ब्राउज़र में निष्पादित होता है, जो रनटाइम के बारे में डेटा एकत्र करता है: WebGL फिंगरप्रिंट, कैनवास फिंगरप्रिंट, ऑडियो संदर्भ, उपलब्ध फ़ॉन्ट, प्लगइन्स, स्क्रीन रिज़ॉल्यूशन और कई अन्य मापदंड। यह सेंसर ओबफस्केटेड है और नियमित रूप से अपडेट किया जाता है, जिससे इसका विश्लेषण करना कठिन हो जाता है।

दूसरे चरण में, PerimeterX का सर्वर-साइड घटक HTTP हेडर, TLS फिंगरप्रिंट, IP प्रतिष्ठा और नेटवर्क विशेषताओं का विश्लेषण करता है इससे पहले कि अनुरोध मुख्य एप्लिकेशन तक पहुंचे। सिस्टम ज्ञात बॉट्स और संदिग्ध IP पते की अपनी वास्तविक समय में अपडेट की गई डेटाबेस का उपयोग करता है।

तीसरा चरण — व्यवहारात्मक विश्लेषण। PerimeterX माउस की गति, स्क्रॉलिंग की गति, क्लिक पैटर्न, क्रियाओं के बीच का समय ट्रैक करता है और व्यवहार का प्रोफ़ाइल बनाता है। मशीन लर्निंग मॉडल इस प्रोफ़ाइल की तुलना वास्तविक उपयोगकर्ताओं और ज्ञात बॉट्स के पैटर्न से करते हैं।

Akamai Bot Manager की आर्किटेक्चर

Akamai Bot Manager CDN स्तर पर एकीकृत होता है, जिससे उसे विश्लेषण की गति में लाभ मिलता है। सिस्टम अपनी तकनीक BMP (Bot Manager Premier) का उपयोग करता है, जो अनुरोधों का विश्लेषण Akamai के सीमांत सर्वरों पर करता है इससे पहले कि उन्हें मूल सर्वर पर भेजा जाए।

Akamai का एक प्रमुख अंतर यह है कि यह अपने CDN द्वारा सुरक्षित लाखों साइटों से टेलीमेट्री का उपयोग करता है। यह सिस्टम को नए प्रकार के बॉट्स की तेजी से पहचान करने और वैश्विक स्तर पर डिटेक्शन नियमों को अपडेट करने की अनुमति देता है। Akamai भी PerimeterX के सेंसर के समान Web SDK तकनीक का उपयोग करता है, लेकिन ग्राहक की अखंडता की क्रिप्टोग्राफिक जांच पर ध्यान केंद्रित करता है।

महत्वपूर्ण: दोनों सिस्टम एन्क्रिप्टेड डेटा वाले कुकीज़ का उपयोग करते हैं। इन कुकीज़ को सर्वर की कुंजी के बिना धोखा देना संभव नहीं है, इसलिए सत्रों के बीच कुकीज़ की साधारण कॉपीिंग काम नहीं करती।

डिटेक्शन के तरीके: सुरक्षा सिस्टम क्या विश्लेषण करते हैं

आधुनिक एंटी-बॉट सिस्टम अनुरोधों का विश्लेषण सैकड़ों मापदंडों के आधार पर करते हैं, जिन्हें कुछ श्रेणियों में वर्गीकृत किया गया है। प्रत्येक श्रेणी को समझना स्वचालन के मार्करों को व्यवस्थित रूप से समाप्त करने की अनुमति देता है।

HTTP हेडर और TLS का विश्लेषण

HTTP हेडर का क्रम डिटेक्शन के सबसे सरल तरीकों में से एक है। ब्राउज़र हेडर को एक सख्त क्रम में भेजते हैं, जो संस्करणों और निर्माताओं के बीच भिन्न होता है। Python में requests या Node.js में axios जैसी पुस्तकालय अपने स्वयं के क्रम का उपयोग करते हैं, जो स्वचालन को तुरंत प्रकट करता है।

TLS फिंगरप्रिंट (JA3 फिंगरप्रिंट) TLS हैंडशेक के मापदंडों से बनाया जाता है: TLS का संस्करण, समर्थित सिफर सूचियों की सूची, एक्सटेंशन और उनका क्रम। प्रत्येक ब्राउज़र और ऑपरेटिंग सिस्टम का संयोजन एक अद्वितीय फिंगरप्रिंट बनाता है। उदाहरण के लिए, Windows 11 पर Chrome 120 का फिंगरप्रिंट macOS पर Chrome 120 या उसी सिस्टम पर Firefox से भिन्न होता है।

// User-Agent और TLS फिंगरप्रिंट के बीच असंगति का उदाहरण
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0
TLS Fingerprint: JA3 हैश Python requests के अनुरूप
// परिणाम: तात्कालिक ब्लॉक

JavaScript रनटाइम

Headless ब्राउज़र JavaScript रनटाइम में दर्जनों निशान छोड़ते हैं। navigator.webdriver की विशेषताएँ, window.chrome वस्तुओं की उपस्थिति, navigator.plugins में असंगतियाँ, WebGL और कैनवास रेंडरिंग में विसंगतियाँ की जांच की जाती है।

PerimeterX और Akamai उन्नत जांच तकनीकों का उपयोग करते हैं: JavaScript फ़ंक्शनों के निष्पादन समय को मापते हैं (headless ब्राउज़रों में यह भिन्न होता है), DOM में स्वचालन के आर्टिफैक्ट की उपस्थिति की जांच करते हैं, फ़ंक्शन कॉल स्टैक का विश्लेषण करते हैं। सिस्टम डेटा की संगति की भी जांच करते हैं — उदाहरण के लिए, यदि User-Agent एक मोबाइल डिवाइस को इंगित करता है, लेकिन navigator.maxTouchPoints 0 है, तो यह डिटेक्शन का ट्रिगर है।

नेटवर्क विशेषताएँ और IP प्रतिष्ठा

सुरक्षा सिस्टम IP पते की जांच कई मापदंडों के आधार पर करते हैं: ज्ञात प्रॉक्सी प्रदाताओं से संबंधित, ब्लैकलिस्ट में उपस्थिति, इस IP से गतिविधि का इतिहास, अन्य अनुरोध मापदंडों (ब्राउज़र की भाषा, समय क्षेत्र) के साथ भू-स्थान की संगति।

IP के उपयोग के पैटर्न पर विशेष ध्यान दिया जाता है। यदि एक ही पते से विभिन्न User-Agent या ब्राउज़र फिंगरप्रिंट के साथ अनुरोध आ रहे हैं, तो यह स्वचालन का एक मजबूत संकेत है। इसी तरह, यदि IP एक सत्र के भीतर बहुत बार बदलता है (आक्रामक प्रॉक्सी रोटेशन), तो यह ब्लॉक को ट्रिगर करता है।

डिटेक्शन पैरामीटर PerimeterX Akamai
TLS फिंगरप्रिंटिंग उच्च प्राथमिकता महत्वपूर्ण प्राथमिकता
कैनवास फिंगरप्रिंट मध्यम प्राथमिकता उच्च प्राथमिकता
व्यवहारात्मक विश्लेषण महत्वपूर्ण प्राथमिकता उच्च प्राथमिकता
IP प्रतिष्ठा उच्च प्राथमिकता उच्च प्राथमिकता
HTTP/2 फिंगरप्रिंट मध्यम प्राथमिकता महत्वपूर्ण प्राथमिकता

ब्राउज़र फिंगरप्रिंटिंग और TLS-फिंगरप्रिंट

ब्राउज़र फिंगरप्रिंटिंग एक तकनीक है जो ब्राउज़र की विशेषताओं के आधार पर एक अद्वितीय पहचानकर्ता बनाने के लिए उपयोग की जाती है। कुकीज़ के बिना भी, सुरक्षा सिस्टम उपयोगकर्ताओं का पता लगा सकते हैं और विसंगतियों का पता लगा सकते हैं।

कैनवास और WebGL फिंगरप्रिंटिंग

कैनवास फिंगरप्रिंटिंग एक अदृश्य छवि को टेक्स्ट और ग्राफिक्स के साथ रेंडर करके काम करता है। ग्राफिकल ड्राइवरों, फ़ॉन्ट्स और एंटी-एलियासिंग सेटिंग्स में भिन्नताओं के कारण, प्रत्येक सिस्टम थोड़ा भिन्न छवि बनाता है। इस छवि का हैश फिंगरप्रिंट का एक हिस्सा बन जाता है।

WebGL फिंगरप्रिंट 3D रेंडरिंग का उपयोग करके एक और अधिक अद्वितीय फिंगरप्रिंट बनाने के लिए काम करता है। सिस्टम GPU, समर्थित एक्सटेंशन, अधिकतम टेक्सचर आकार और अन्य मापदंडों के बारे में जानकारी मांगता है। इन डेटा का संयोजन एक ऐसा फिंगरप्रिंट बनाता है जिसकी पहचान के लिए पर्याप्त एंट्रॉपी होती है।

// WebGL फिंगरप्रिंट प्राप्त करने का उदाहरण
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);

// परिणाम हो सकता है: "Google Inc. (NVIDIA)" + "ANGLE (NVIDIA GeForce RTX 3080)"
// प्रत्येक डिवाइस के लिए अद्वितीय संयोजन

ऑडियो संदर्भ और फ़ॉन्ट

ऑडियो संदर्भ API ध्वनि प्रसंस्करण के आधार पर एक अद्वितीय फिंगरप्रिंट बनाने की अनुमति देता है। ऑपरेटिंग सिस्टम के ऑडियो स्टैक में भिन्नताएँ ऑडियो सिग्नल के प्रसंस्करण में सूक्ष्म भिन्नताओं का कारण बनती हैं, जिन्हें मापा जा सकता है और पहचान के लिए उपयोग किया जा सकता है।

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

TLS और HTTP/2 फिंगरप्रिंटिंग

JA3 फिंगरप्रिंट TLS Client Hello के मापदंडों से बनाया जाता है: SSL/TLS का संस्करण, सिफर सूचियों की सूची, एक्सटेंशन की सूची, समर्थित अंडरकर्व समूहों की सूची, अंडरकर्व बिंदुओं के प्रारूप। ये मापदंड एकत्रित किए जाते हैं और हैश किए जाते हैं, जिससे एक अद्वितीय स्ट्रिंग बनती है।

HTTP/2 फिंगरप्रिंट SETTINGS फ्रेम के मापदंडों, धाराओं के क्रम और प्राथमिकताओं, विंडो अपडेट मूल्यों का विश्लेषण करता है। प्रत्येक ब्राउज़र अद्वितीय HTTP/2 सेटिंग्स का उपयोग करता है, जो सही TLS फिंगरप्रिंट के बावजूद ग्राहक की पहचान करने की अनुमति देता है।

व्यावहारिक सलाह: फिंगरप्रिंटिंग को बाईपास करने के लिए सभी मापदंडों की संगति सुनिश्चित करना आवश्यक है। Chrome User-Agent का उपयोग करते हुए Firefox TLS फिंगरप्रिंट का उपयोग तुरंत प्रकट होता है। curl-impersonate जैसे उपकरण या tls-client पुस्तकालय पूरी तरह से संगत फिंगरप्रिंट बनाने में मदद करते हैं।

व्यवहारात्मक विश्लेषण और मशीन लर्निंग

व्यवहारात्मक विश्लेषण आधुनिक एंटी-बॉट सिस्टम का सबसे कठिन बाईपास करने वाला पहलू है। यहां तक कि एक आदर्श तकनीकी फिंगरप्रिंट भी गैर-मानव व्यवहार को स्वचालन के रूप में प्रकट करेगा।

माउस की गति और इंटरैक्शन का विश्लेषण

PerimeterX और Akamai माउस की गति, त्वरण और धीमा होने, मानव हाथ के लिए विशिष्ट सूक्ष्म गति की ट्रैकिंग करते हैं। बॉट आमतौर पर माउस को सीधी रेखाओं में चलाते हैं या माउस इवेंट्स उत्पन्न नहीं करते हैं। सिस्टम प्रतिक्रिया समय का भी विश्लेषण करते हैं — पृष्ठ लोड होने के तुरंत बाद क्लिक करना बिना माउस की गति के संदिग्ध लगता है।

स्क्रॉलिंग पैटर्न भी अद्वितीय होते हैं। मानव पृष्ठ को असमान रूप से स्क्रॉल करता है: शुरुआत में तेजी से, पढ़ने के लिए धीमा होता है, कभी-कभी पीछे स्क्रॉल करता है। बॉट आमतौर पर स्थिर गति से स्क्रॉल करते हैं या तात्कालिक स्क्रॉलिंग के लिए window.scrollTo() का उपयोग करते हैं।

समय पैटर्न और क्रियाओं की गति

क्रियाओं के बीच का समय एक महत्वपूर्ण पैरामीटर है। मानव 0.5 सेकंड में 10 फ़ील्ड वाले फॉर्म को नहीं भर सकता या एक मिनट में 50 लिंक पर नहीं जा सकता। सुरक्षा सिस्टम प्रत्येक प्रकार की क्रियाओं के लिए गति का प्रोफ़ाइल बनाते हैं और इसे उपयोगकर्ता के व्यवहार से तुलना करते हैं।

विलंबता की संगति पर विशेष ध्यान दिया जाता है। यदि प्रत्येक क्लिक के बीच ठीक 2 सेकंड का समय होता है, तो यह कोड में sleep(2000) का स्पष्ट संकेत है। मानव विलंबताओं में स्वाभाविक विविधता होती है और ये निश्चित सांख्यिकीय वितरणों का पालन करती हैं।

मशीन लर्निंग मॉडल

दोनों सिस्टम ML मॉडल का उपयोग करते हैं, जो वास्तविक उपयोगकर्ताओं और ज्ञात बॉट्स के लाखों सत्रों पर प्रशिक्षित होते हैं। मॉडल एक साथ सैकड़ों विशेषताओं का विश्लेषण करते हैं: क्रियाओं की अनुक्रम, साइट पर गहराई, नेविगेशन पैटर्न, तत्वों के साथ इंटरैक्शन।

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

// विविधता के साथ मानव-समान विलंबताओं का उदाहरण
function humanDelay(baseMs) {
  // समान वितरण के बजाय लॉग-नॉर्मल वितरण
  const variance = baseMs * 0.3;
  const delay = baseMs + (Math.random() - 0.5) * variance;
  // ब्राउज़र द्वारा इवेंट्स के प्रसंस्करण के लिए विशिष्ट सूक्ष्म विलंब जोड़ें
  const microDelay = Math.random() * 50;
  return Math.max(100, delay + microDelay);
}

// उपयोग: await new Promise(r => setTimeout(r, humanDelay(2000)));

प्रॉक्सी के चयन और रोटेशन की रणनीति

प्रॉक्सी के प्रकार और रोटेशन की रणनीति का चयन PerimeterX और Akamai के साथ काम करते समय अत्यंत महत्वपूर्ण है। प्रॉक्सी की गलत कॉन्फ़िगरेशन सभी ब्राउज़र फिंगरप्रिंट छिपाने के प्रयासों को विफल कर देगी।

रेजिडेंटियल बनाम मोबाइल बनाम डेटा सेंटर प्रॉक्सी

डेटा सेंटर प्रॉक्सी की लागत सबसे कम होती है, लेकिन डिटेक्शन का जोखिम सबसे अधिक होता है। PerimeterX और Akamai डेटा सेंटर IP पतों के डेटाबेस का समर्थन करते हैं और ऐसे अनुरोधों के लिए स्वचालित रूप से जांच के स्तर को बढ़ाते हैं। डेटा सेंटर प्रॉक्सी का उपयोग केवल निम्न प्राथमिकता वाले कार्यों के लिए या बहुत उच्च गुणवत्ता वाले ब्राउज़र फिंगरप्रिंट के साथ संयोजन में किया जा सकता है।

रेजिडेंटियल प्रॉक्सी वास्तविक इंटरनेट प्रदाताओं के IP पतों का उपयोग करते हैं, जो डिटेक्शन की संभावना को काफी कम करता है। हालाँकि, रेजिडेंटियल प्रॉक्सी की गुणवत्ता बहुत भिन्न होती है। ऐसे प्रदाताओं का चयन करना महत्वपूर्ण है जिनके पास स्वच्छ IP पूल हैं, जहाँ पते पहले स्पैम या अन्य संदिग्ध गतिविधियों के लिए उपयोग नहीं किए गए हैं।

मोबाइल प्रॉक्सी उच्चतम स्तर की विश्वसनीयता प्रदान करते हैं, क्योंकि वे मोबाइल ऑपरेटरों के IP पतों का उपयोग करते हैं। ये पते आमतौर पर कई उपयोगकर्ताओं के बीच साझा किए जाते हैं (carrier-grade NAT), जिससे ब्लॉक करना कठिन हो जाता है। मोबाइल प्रॉक्सी विशेष रूप से Akamai के खिलाफ प्रभावी होते हैं, जो मोबाइल ट्रैफ़िक को ब्लॉक करने में अधिक सतर्क होते हैं।

रोटेशन रणनीतियाँ

आक्रामक रोटेशन (प्रत्येक अनुरोध पर IP बदलना) एक सामान्य गलती है। यह एक संदिग्ध पैटर्न बनाता है: एक उपयोगकर्ता शारीरिक रूप से हर कुछ सेकंड में IP पते को नहीं बदल सकता। सत्रीय रोटेशन अधिक प्रभावी होता है, जहाँ एक IP पूरी उपयोगकर्ता सत्र (10-30 मिनट की गतिविधि) के लिए उपयोग किया जाता है।

दीर्घकालिक संचालन के लिए 30-60 मिनट की अवधि के साथ स्थिर सत्रों की सिफारिश की जाती है। यह एक वास्तविक उपयोगकर्ता के व्यवहार की नकल करता है, जो सत्र के दौरान एक ही IP पर रहता है। इस दौरान, यह महत्वपूर्ण है कि एक ही IP को बहुत लंबे समय तक उपयोग न करें — कई घंटों तक चलने वाले सत्र भी संदिग्ध लगते हैं।

भूगोलिक संगति

IP पते की भू-स्थान और अन्य मापदंडों के बीच संगति सुनिश्चित करना अत्यंत महत्वपूर्ण है: ब्राउज़र की भाषा, समय क्षेत्र, स्थानीय सेटिंग्स। यदि IP पता जर्मनी से है, लेकिन navigator.language "en-US" लौटाता है, और समय क्षेत्र "America/New_York" है — तो यह तात्कालिक डिटेक्शन का ट्रिगर है।

यदि कई भूगोलिक क्षेत्रों के साथ काम कर रहे हैं, तो प्रत्येक क्षेत्र के लिए अलग-अलग ब्राउज़र प्रोफाइल का उपयोग करें। एक सत्र के भीतर क्षेत्रों के बीच स्विच करना (IP फ्रांस से, फिर जापान से) एक वास्तविक उपयोगकर्ता के लिए असंभव है और तुरंत प्रकट होता है।

प्रॉक्सी का प्रकार PerimeterX के खिलाफ प्रभावशीलता Akamai के खिलाफ प्रभावशीलता सिफारिशें
डेटा सेंटर कम (30-40%) बहुत कम (20-30%) केवल परीक्षण के लिए
रेजिडेंटियल उच्च (75-85%) मध्यम (65-75%) अधिकांश कार्यों के लिए मुख्य विकल्प
मोबाइल बहुत उच्च (85-95%) उच्च (80-90%) महत्वपूर्ण कार्यों और उच्च सुरक्षा वाली साइटों के लिए

एंटी-डिटेक्ट ब्राउज़रों और उपकरणों का सेटअप

स्वचालन उपकरणों की सही सेटिंग PerimeterX और Akamai को सफलतापूर्वक बाईपास करने के लिए एक प्रमुख कारक है। यहां तक कि सबसे अच्छे प्रॉक्सी भी मदद नहीं करेंगे यदि ब्राउज़र फिंगरप्रिंट में स्पष्ट स्वचालन के मार्कर हों।

Playwright और Puppeteer: उन्नत कॉन्फ़िगरेशन

Playwright या Puppeteer की बुनियादी स्थापना स्पष्ट headless ब्राउज़र बनाती है। स्वचालन को छिपाने के लिए स्टील्थ प्लगइन्स और अतिरिक्त कॉन्फ़िगरेशन का उपयोग करना आवश्यक है। puppeteer-extra-plugin-stealth पुस्तकालय मुख्य मार्करों को छिपाता है, लेकिन इसके लिए अतिरिक्त सेटअप की आवश्यकता होती है।

// एंटी-डिटेक्ट के साथ Playwright की उन्नत कॉन्फ़िगरेशन
const { chromium } = require('playwright-extra');
const stealth = require('puppeteer-extra-plugin-stealth')();

chromium.use(stealth);

const browser = await chromium.launch({
  headless: false, // Headless मोड आसानी से डिटेक्ट किया जाता है
  args: [
    '--disable-blink-features=AutomationControlled',
    '--disable-features=IsolateOrigins,site-per-process',
    '--disable-site-isolation-trials',
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage',
    '--disable-accelerated-2d-canvas',
    '--disable-gpu',
    '--window-size=1920,1080',
    '--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
  ]
});

const context = await browser.newContext({
  viewport: { width: 1920, height: 1080 },
  locale: 'en-US',
  timezoneId: 'America/New_York',
  permissions: ['geolocation', 'notifications'],
  geolocation: { latitude: 40.7128, longitude: -74.0060 }
});

Selenium undetected-chromedriver के साथ

मानक Selenium WebDriver को navigator.webdriver विशेषता के माध्यम से आसानी से डिटेक्ट किया जाता है। undetected-chromedriver पुस्तकालय स्वचालित रूप से ChromeDriver को पैच करता है, मुख्य स्वचालन मार्करों को हटाता है और नए डिटेक्शन तरीकों को बाईपास करने के लिए नियमित रूप से अपडेट होता है।

import undetected_chromedriver as uc
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--window-size=1920,1080')

# संगति के लिए Chrome के विशिष्ट संस्करण का उपयोग
driver = uc.Chrome(options=options, version_main=120)

# CDP के माध्यम से अतिरिक्त छिपाना
driver.execute_cdp_cmd('Network.setUserAgentOverride', {
    "userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
})

driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

एंटी-डिटेक्ट ब्राउज़र्स: AdsPower, Multilogin, GoLogin

व्यावसायिक एंटी-डिटेक्ट ब्राउज़र्स फिंगरप्रिंट प्रबंधन के लिए तैयार समाधान प्रदान करते हैं। AdsPower और Multilogin अद्वितीय कैनवास, WebGL, ऑडियो फिंगरप्रिंट के साथ प्रोफाइल बनाने और उन्हें API के माध्यम से प्रबंधित करने की अनुमति देते हैं। ये उपकरण कई खातों के साथ काम करते समय विशेष रूप से उपयोगी होते हैं।

मुख्य लाभ — सत्रों के बीच संगत फिंगरप्रिंट को बनाए रखने की क्षमता। प्रत्येक प्रोफ़ाइल में स्थिर कैनवास, WebGL, फ़ॉन्ट्स के मापदंड होते हैं, जो दीर्घकालिक कार्य के लिए महत्वपूर्ण होते हैं। इस दौरान, यथार्थवादी कॉन्फ़िगरेशन का उपयोग करना महत्वपूर्ण है — यादृच्छिक फिंगरप्रिंट उत्पन्न करना तकनीकी रूप से असंभव संयोजनों को उत्पन्न कर सकता है, जो आसानी से प्रकट होते हैं।

HTTP क्लाइंट्स सही फिंगरप्रिंट के साथ

ऐसे कार्यों के लिए, जिन्हें JavaScript रेंडरिंग की आवश्यकता नहीं होती है, HTTP क्लाइंट्स जिनके पास सही TLS और HTTP/2 फिंगरप्रिंट होते हैं, अधिक प्रभावी होते हैं। curl-impersonate (Python के लिए — curl_cffi) और tls-client पुस्तकालय वास्तविक ब्राउज़रों के TLS फिंगरप्रिंट की नकल करने की अनुमति देते हैं।

from curl_cffi import requests

# Chrome 120 के साथ सही TLS और HTTP/2 फिंगरप्रिंट की नकल
response = requests.get(
    'https://example.com',
    impersonate="chrome120",
    proxies={
        "http": "http://user:pass@proxy:port",
        "https": "http://user:pass@proxy:port"
    },
    headers={
        'Accept-Language': 'en-US,en;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"'
    }
)

# TLS फिंगरप्रिंट स्वचालित रूप से Chrome 120 के अनुरूप है

डिटेक्शन ट्रिगर्स के बिना ऑटोमेशन तकनीकें

यहां तक कि एक आदर्श तकनीकी फिंगरप्रिंट के साथ, स्वचालन के पैटर्न बॉट को प्रकट कर सकते हैं। वेबसाइट के साथ इंटरैक्शन के स्तर पर मानव व्यवहार की नकल करना आवश्यक है।

माउस की गति का अनुकरण

बिंदु A से बिंदु B तक सीधी माउस गति स्वचालन का स्पष्ट संकेत है। मानव हाथ चिकनी वक्रों के साथ सूक्ष्म सुधार करता है। pyautogui जैसे पुस्तकालय वास्तविकता के अनुरूप पथ उत्पन्न करने के लिए Bézier वक्रों का उपयोग करने की अनुमति देते हैं।

// मानव-समान माउस पथ उत्पन्न करना
async function humanMouseMove(page, targetX, targetY) {
  const current = await page.evaluate(() => ({
    x: window.mouseX || 0,
    y: window.mouseY || 0
  }));
  
  const steps = 25 + Math.floor(Math.random() * 15);
  const points = generateBezierCurve(current.x, current.y, targetX, targetY, steps);
  
  for (let point of points) {
    await page.mouse.move(point.x, point.y);
    await new Promise(r => setTimeout(r, 10 + Math.random() * 20));
  }
  
  // क्लिक करने से पहले सूक्ष्म सुधार
  await page.mouse.move(targetX + (Math.random() - 0.5) * 2, 
                        targetY + (Math.random() - 0.5) * 2);
}

function generateBezierCurve(x1, y1, x2, y2, steps) {
  const cp1x = x1 + (x2 - x1) * (0.3 + Math.random() * 0.2);
  const cp1y = y1 + (y2 - y1) * (0.3 + Math.random() * 0.2);
  const points = [];
  
  for (let i = 0; i <= steps; i++) {
    const t = i / steps;
    const x = Math.pow(1-t, 2) * x1 + 2 * (1-t) * t * cp1x + Math.pow(t, 2) * x2;
    const y = Math.pow(1-t, 2) * y1 + 2 * (1-t) * t * cp1y + Math.pow(t, 2) * y2;
    points.push({x: Math.round(x), y: Math.round(y)});
  }
  return points;
}

वास्तविक स्क्रॉलिंग और सामग्री पढ़ना

मानव सामग्री पढ़ने के लिए पृष्ठ को स्क्रॉल करता है, रुचिकर अनुभागों पर रुकता है। बॉट आमतौर पर पृष्ठ के अंत तक या आवश्यक तत्व तक बहुत तेजी से स्क्रॉल करते हैं। पढ़ने की नकल करने के लिए सामग्री का विश्लेषण करना और वास्तविकता के अनुरूप विराम बनाना आवश्यक है।

async function humanScroll(page, targetElement) {
  const elementPosition = await page.evaluate(el => {
    const rect = el.getBoundingClientRect();
    return rect.top + window.pageYOffset;
  }, targetElement);
  
  const currentScroll = await page.evaluate(() => window.pageYOffset);
  const distance = elementPosition - currentScroll;
  const scrollSteps = Math.floor(Math.abs(distance) / 100);
  
  for (let i = 0; i < scrollSteps; i++) {
    const scrollAmount = (distance / scrollSteps) * (0.8 + Math.random() * 0.4);
    await page.evaluate((amount) => {
      window.scrollBy({top: amount, behavior: 'smooth'});
    }, scrollAmount);
    
    // "पढ़ने" के लिए यादृच्छिक विराम
    if (Math.random() > 0.7) {
      await new Promise(r => setTimeout(r, 1000 + Math.random() * 2000));
    } else {
      await new Promise(r => setTimeout(r, 200 + Math.random() * 400));
    }
  }
}

स्वाभाविक नेविगेशन पैटर्न

उपयोगकर्ता सीधे लक्ष्य पृष्ठ पर नहीं जाते — वे स्वाभाविक रूप से साइट के साथ इंटरैक्ट करते हैं। मुख्य पृष्ठ से शुरू करें, कई अनुभागों पर जाएँ, खोज का उपयोग करें या नेविगेशन मेनू का उपयोग करें। यह इंटरैक्शन का एक इतिहास बनाता है, जो सुरक्षा सिस्टमों के लिए विश्वास बढ़ाता है।

गलतियों और सुधारों की नकल करना भी महत्वपूर्ण है — मानव गलत लिंक पर क्लिक कर सकता है और वापस लौट सकता है, खोज फ़ील्ड में टाइप करते समय गलती कर सकता है और टाइपो को सुधार सकता है। लक्ष्य तक सीधा रास्ता संदिग्ध लगता है।

कुकीज़ और स्टोरेज का प्रबंधन

PerimeterX और Akamai सत्रों को ट्रैक करने के लिए कुकीज़ और localStorage का उपयोग करते हैं। अनुरोधों के बीच कुकीज़ को पूरी तरह से साफ करना संदिग्ध लगता है — एक वास्तविक ब्राउज़र कुछ कुकीज़ (विश्लेषण, सेटिंग्स) को बनाए रखता है। एक "उपयोगकर्ता" के लिए सत्रों के बीच कुकीज़ को बनाए रखें, लेकिन विभिन्न प्रोफाइल के लिए विभिन्न कुकी सेट का उपयोग करें।

महत्वपूर्ण: सुरक्षा सिस्टम कुकीज़ की उम्र का विश्लेषण करते हैं। यदि सुरक्षा कुकी (_px, _abck) अभी हाल ही में उत्पन्न हुई है, लेकिन उपयोगकर्ता स्थायी आगंतुक के व्यवहार को प्रदर्शित करता है — तो यह असंगति है। दीर्घकालिक संचालन के लिए, प्रोफाइल को "गर्म" करें, विज़िट इतिहास बनाकर।

व्यावहारिक केस और सामान्य समस्याओं का समाधान

PerimeterX और Akamai को बाईपास करने के लिए विशिष्ट परिदृश्यों पर विचार करते हैं, साथ ही प्रक्रिया में उत्पन्न होने वाली सामान्य समस्याओं के समाधान।

केस 1: PerimeterX के साथ ई-कॉमर्स का पार्सिंग

कार्य: PerimeterX द्वारा सुरक्षित एक बड़े ऑनलाइन स्टोर से उत्पाद डेटा निकालना। साइट 3-5 अनुरोधों के बाद भी विभिन्न IP से ब्लॉक कर देती है।

समाधान: रेजिडेंटियल प्रॉक्सी के संयोजन का उपयोग करें, जिसमें स्थिर सत्र (30 मिनट) और Playwright के साथ पूर्ण व्यवहार अनुकरण शामिल है। प्रमुख बिंदु: मुख्य पृष्ठ से शुरू करें, नेविगेशन के लिए खोज या श्रेणियों का उपयोग करें, अनुरोधों के बीच 3-7 सेकंड के यादृच्छिक विलंब जोड़ें, स्क्रॉलिंग और माउस गति की नकल करें। महत्वपूर्ण है — एक ही सत्र के भीतर _px कुकीज़ को अनुरोधों के बीच बनाए रखना।

// गर्म करने के साथ सत्र का उदाहरण
async function scrapeWithWarmup(page, targetUrls) {
  // प्रोफ़ाइल को गर्म करना
  await page.goto('https://example.com');
  await humanScroll(page, await page.$('footer'));
  await new Promise(r => setTimeout(r, 3000 + Math.random() * 2000));
  
  // मेनू के माध्यम से नेविगेशन
  await humanMouseMove(page, menuX, menuY);
  await page.click('nav a.category');
  await new Promise(r => setTimeout(r, 2000 + Math.random() * 1000));
  
  // केवल गर्म करने के बाद लक्षित पृष्ठों पर जाएँ
  for (let url of targetUrls) {
    await page.goto(url);
    await humanScroll(page, await page.$('.product-info'));
    // डेटा निकालना
    const data = await page.evaluate(() => extractProductData());
    await new Promise(r => setTimeout(r, 5000 + Math.random() * 3000));
  }
}

केस 2: API अनुरोधों के लिए Akamai को बाईपास करना

कार्य: Akamai Bot Manager द्वारा सुरक्षित API तक पहुँच प्राप्त करना। API विशिष्ट हेडर और टोकन की आवश्यकता होती है, जो पृष्ठ पर JavaScript द्वारा उत्पन्न होते हैं।

समाधान: Akamai अक्सर sensor_data का उपयोग करता है — ब्राउज़र की जांच के परिणामों के साथ एक एन्क्रिप्टेड स्ट्रिंग। यह स्ट्रिंग JavaScript द्वारा उत्पन्न होती है और इसे अनुरोध में शामिल किया जाना चाहिए। वैध sensor_data प्राप्त करने के लिए ब्राउज़र स्वचालन का उपयोग करें, फिर इसे सही TLS फिंगरप्रिंट के साथ HTTP क्लाइंट में लागू करें।

// ब्राउज़र के माध्यम से sensor_data निकालना
async function getSensorData(page) {
  await page.goto('https://example.com');
  
  // Akamai सेंसर के निष्पादन की प्रतीक्षा करें
  await page.waitForTimeout(5000);
  
  // कुकी या localStorage से sensor_data निकालना
  const sensorData = await page.evaluate(() => {
    const cookie = document.cookie.split(';')
      .find(c => c.trim().startsWith('_abck='));
    return cookie ? cookie.split('=')[1] : null;
  });
  
  return sensorData;
}

// HTTP क्लाइंट में उपयोग
const sensorData = await getSensorData(page);
const response = await fetch('https://example.com/api/data', {
  headers: {
    'Cookie': `_abck=${sensorData}`,
    'User-Agent': 'Mozilla/5.0...',
    // अन्य हेडर ब्राउज़र के अनुरूप होने चाहिए
  }
});

केस 3: CAPTCHA और चुनौती पृष्ठों का समाधान

समस्या: सही कॉन्फ़िगरेशन के बावजूद, PerimeterX या Akamai कभी-कभी अतिरिक्त जांच के लिए चुनौती पृष्ठ या CAPTCHA प्रदर्शित करते हैं।

समाधान: PerimeterX के चुनौती पृष्ठ आमतौर पर अतिरिक्त...

```