Kan een website detecteren wanneer je Selenium gebruikt met chromedriver?

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

Ik heb Selenium uitgeprobeerd met Chromedriver en ik heb gemerkt dat sommige pagina's kunnen detecteren dat je Selenium gebruikt, ook al is er helemaal geen automatisering. Xephyr Ik krijg vaak een pagina waarin staat dat er verdachte activiteit is gedetecteerd. Ik heb mijn user-agent en de vingerafdruk van mijn browser gecontroleerd, en ze zijn allemaal precies identiek aan de normale Chrome-browser.

Als ik naar deze sites blader in normale Chrome, werkt alles prima, maar op het moment dat ik gebruik Selenium wordt gedetecteerd.

In theorie zouden chromedriver en Chrome er letterlijk hetzelfde uit moeten zien voor elke webserver, maar op de een of andere manier kunnen ze het detecteren.

Als je wat testcode wilt, probeer het dan eens dit:

van pyvirtualdisplay import Weergave van selenium import webdriver display = Display(visible=1, size=(1600, 902)) display.start() chrome_options = webdriver.ChromeOptions() chrome_options. add_argument("--disable-extensions") chrome_options.add_argument("--profile-directory=Standaard") chrome_options.add_argument("--incognito") chrome_options.add_argument("--disable-plugins-discovery") ; chrome_options.add_argument("--start-maximized") driver = webdriver.Chrome(chrome_options=chrome_options) driver.delete_all_cookies() driver.set_window_size(800,800) driver.set_window_position(0,0) print "argumenten gedaan" driver.get ("http://stubhub.com") 

Als u door stubhub bladert, wordt u binnen een of twee verzoeken omgeleid en "geblokkeerd". Ik heb dit onderzocht en ik kunnen er niet achter komen hoe ze kunnen zien dat een gebruiker Selenium gebruikt.

Hoe doen ze het?

Ik heb de Selenium IDE-plug-in in Firefox geïnstalleerd en ik werd verbannen toen ik ging naar stubhub.com in de normale Firefox-browser met alleen de extra plug-in.

Als ik Fiddler gebruik om de HTTP-verzoeken te bekijken die heen en weer worden verzonden, heb ik gemerkt dat de verzoeken van de "nepbrowser" hebben vaak "no-cache" in de responsheader.

Resultaten zoals deze Is de Er is een manier om te detecteren dat ik me op een Selenium Webdriver-pagina van JavaScript bevind, suggereert dat er geen manier zou moeten zijn om te detecteren wanneer u een webdriver gebruikt. Maar dit bewijs suggereert anders.

De site uploadt een vingerafdruk naar hun servers, maar ik heb het gecontroleerd en de vingerafdruk van Selenium is identiek aan de vingerafdruk bij gebruik van Chrome.

Dit is een van de de vingerafdruk-payloads die ze naar hun servers sturen: {"appName":"Netscape","platform":"Linuxx86_64","cookies":1,"syslang":"en-US", "userlang":"en-US","cpu":"","productSub":"20030107","setTimeout":1,"setInterval":1,"plugins" :{"0":"ChromePDFViewer","1":"ShockwaveFlash","2":"WidevineContentDecryptionModule,"3":"NativeClient","4" ;},"mimeTypes":{"0":"application/pdf","1":"ShockwaveFlashapplication/x-shockwave-flash","2":"FutureSplashPlayerap plication/futuresplash","3":"WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm","4":"NativeClientExecutableapplication/x-nacl","5":/ClientExcutableNative ,"6":"PortableDocumentFormatapplication/x-google-chrome-pdf"},"screen":{"width":1600,"height":900,"colorDepth":24}," fonts":{"0":"monospace","1":"DejaVuSerif","2":"Georgia","3":"DejaVuSans","4":" ;TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono":"9" ;NimbusMonoL','10':'CourierNew','11':'Courier'}}

Het is identiek in Selenium en in Chrome.

VPN's werken voor eenmalig gebruik, maar ze krijgen gedetecteerd nadat ik de eerste pagina heb geladen. Er wordt duidelijk JavaScript uitgevoerd om Selenium te detecteren.