जब आप क्रोमेड्रिवर के साथ सेलेनियम का उपयोग कर रहे हैं तो क्या कोई वेबसाइट पता लगा सकती है?

| | | | | | | | | | | | | | | | | | | | | | | | | |

मैं क्रोमेड्रिवर के साथ सेलेनियम का परीक्षण कर रहा हूं और मैंने देखा है कि कुछ पेज यह पता लगा सकते हैं कि आप सेलेनियम का उपयोग कर रहे हैं, भले ही कोई स्वचालन नहीं है। यहां तक कि जब मैं केवल सेलेनियम के माध्यम से क्रोम का उपयोग करके मैन्युअल रूप से ब्राउज़ कर रहा हूं और Xephyr मुझे अक्सर यह कहते हुए एक पृष्ठ मिलता है कि संदिग्ध गतिविधि का पता चला था। मैंने अपने उपयोगकर्ता एजेंट और अपने ब्राउज़र फ़िंगरप्रिंट की जाँच की है, और वे सभी सामान्य क्रोम ब्राउज़र के समान हैं।

जब मैं सामान्य क्रोम में इन साइटों को ब्राउज़ करता हूं तो सब कुछ ठीक काम करता है, लेकिन जिस क्षण मैं उपयोग करता हूं सेलेनियम I" का पता चला है।

सिद्धांत रूप में, क्रोमेड्राइवर और क्रोम को किसी भी वेबसर्वर के समान ही दिखना चाहिए, लेकिन किसी तरह वे इसका पता लगा सकते हैं।

यदि आप कुछ टेस्टकोड चाहते हैं तो आज़माएं यह:

pyvirtualdisplay import से सेलेनियम इम्पोर्ट वेबड्राइवर डिस्प्ले = डिस्प्ले(visible=1, size=(1600, 902)) display.start() chrome_options = webdriver.ChromeOptions() chrome_options. add_argument("--disable-extensions") chrome_options.add_argument("--profile-directory=Default") chrome_options.add_argument("--incognito") chrome_options.add_argument("--disable-plugins-discovery") ; chrome_options.add_argument("--start-maximized") ड्राइवर = webdriver.Chrome(chrome_options=chrome_options) driver.delete_all_cookies() driver.set_window_size(800,800) driver.set_window_position(0,0) प्रिंट "आर्ग्युमेंट हो गया" ड्राइवर। ("http://stubhub.com") 

यदि आप stubhub के आसपास ब्राउज़ करते हैं तो आप एक या दो अनुरोधों के भीतर पुनर्निर्देशित और "अवरुद्ध" हो जाएंगे। मैं इसकी जांच कर रहा हूं और मैं यह पता नहीं लगा सकता कि वे कैसे बता सकते हैं कि एक उपयोगकर्ता सेलेनियम का उपयोग कर रहा है।

वे इसे कैसे करते हैं?

मैंने फ़ायरफ़ॉक्स में सेलेनियम आईडीई प्लगइन स्थापित किया है और जब मैं केवल अतिरिक्त प्लगइन के साथ सामान्य फ़ायरफ़ॉक्स ब्राउज़र में stubhub.com पर गया।

जब मैं आगे और पीछे भेजे जा रहे HTTP अनुरोधों को देखने के लिए फिडलर का उपयोग करता हूं तो मैंने देखा है कि "नकली ब्राउज़र" अनुरोध प्रतिक्रिया शीर्षलेख में अक्सर "नो-कैश" होता है।

इस तरह के परिणाम है यह पता लगाने का एक तरीका है कि मैं जावास्क्रिप्ट से सेलेनियम वेबड्राइवर पेज में हूं सुझाव देता हूं कि यह पता लगाने का कोई तरीका नहीं होना चाहिए कि आप कब वेबड्राइवर का उपयोग कर रहे हैं। लेकिन यह सबूत कुछ और ही बताता है।

साइट उनके सर्वर पर एक फिंगरप्रिंट अपलोड करती है, लेकिन मैंने जांच की और सेलेनियम का फिंगरप्रिंट क्रोम का उपयोग करते समय फिंगरप्रिंट के समान है।

यह इनमें से एक है फ़िंगरप्रिंट पेलोड जो वे अपने सर्वर को भेजते हैं: {"appName":"नेटस्केप","प्लेटफ़ॉर्म":"Linxx86_64","कुकीज़":1,"syslang":"en-US", "userlang":"en-US","cpu":"","उत्पाद उप":"20030107","सेटटाइमआउट": 1,"सेटइंटरवल":1,"प्लगइन्स" :{"0":"ChromePDFViewer","1":"शॉकवेव फ्लैश","2":"WidevineContentDecryptionModule","3" ;},"माइम प्रकार":{"0":"आवेदन/पीडीएफ","1":"शॉकवेव फ्लैश एप्लिकेशन/एक्स-शॉकवेव-फ्लैश","2":"भविष्यस्पलैशप्लेयरैप प्लिकेशन/फ्यूचरस्प्लाश","3":"WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm",4":"NativeClientExecutableapplication/x-nacl","5":"पोर्टेबलएप्लीकेशन" ,"6":"पोर्टेबल डॉक्यूमेंटफॉर्मेटएप्लिकेशन/एक्स-गूगल-क्रोम-पीडीएफ"},"स्क्रीन":{"चौड़ाई":1600,"ऊंचाई":900,"रंग गहराई": 24}," फ़ॉन्ट्स":{"0":"मोनोस्पेस","1":"देजावु सेरिफ़","2":"जॉर्जिया","3":"देजावुसंस","4":" ;ट्रेबुचेटएमएस","5":"वर्दाना","6":"एंडेलमोनो","7":"देजावुसंसमोनो","8": "लिबरेशन मोनो", "9" ;निंबसमोनोएल","10":"कूरियरन्यू","11":"कूरियर"}}

यह सेलेनियम और क्रोम में समान है।

वीपीएन एक ही उपयोग के लिए काम करते हैं, लेकिन उन्हें मिलता है पहला पृष्ठ लोड करने के बाद पता चला। स्पष्ट रूप से सेलेनियम का पता लगाने के लिए कुछ जावास्क्रिप्ट चलाया जा रहा है।