Un site Web peut-il détecter lorsque vous utilisez Selenium avec chromedriver ?

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

J"ai testé Selenium avec Chromedriver et j"ai remarqué que certaines pages peuvent détecter que vous utilisez Selenium même s"il n"y a aucune automatisation. Même lorsque je navigue manuellement en utilisant simplement Chrome via Selenium et Xephyr Je reçois souvent une page indiquant qu'une activité suspecte a été détectée. J'ai vérifié mon agent utilisateur et l'empreinte de mon navigateur, et ils sont tous exactement identiques au navigateur Chrome normal.

Lorsque je navigue sur ces sites dans Chrome normal, tout fonctionne bien, mais au moment où j'utilise Sélénium, je suis détecté.

En théorie, chromedriver et Chrome devraient avoir exactement la même apparence pour n'importe quel serveur Web, mais d'une manière ou d'une autre, ils peuvent le détecter.

Si vous voulez un testcode, essayez ceci :

from pyvirtualdisplay import Display from 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=Default") 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 "arguments done" driver.get ("http://stubhub.com") 

Si vous parcourez stubhub, vous serez redirigé et "bloqué" en une ou deux requêtes. J'ai enquêté là-dessus et j'ai ne peuvent pas comprendre comment ils peuvent dire qu'un utilisateur utilise Selenium.

Comment font-ils ?

J'ai installé le plugin Selenium IDE dans Firefox et j'ai été banni quand j'ai est allé sur stubhub.com dans le navigateur Firefox normal avec uniquement le plug-in supplémentaire.

Lorsque j'utilise Fiddler pour afficher les requêtes HTTP envoyées dans les deux sens, j'ai remarqué que les requêtes du "faux navigateur" ont souvent "no-cache" dans l'en-tête de réponse.

Des résultats comme celui-ci Est-ce Il existe un moyen de détecter que je suis dans une page Selenium Webdriver à partir de JavaScript suggère qu'il ne devrait y avoir aucun moyen de détecter quand vous utilisez un pilote Web. Mais cette preuve suggère le contraire.

Le site télécharge une empreinte digitale sur leurs serveurs, mais j'ai vérifié et l'empreinte digitale de Selenium est identique à l'empreinte digitale lors de l'utilisation de Chrome.

C'est l'une des les charges utiles d'empreintes digitales qu'ils envoient à leurs serveurs : {"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":"ChromePDFViewer" ;},"mimeTypes":{"0":"application/pdf", "1":"ShockwaveFlashapplication/x-shockwave-flash", "2":"FutureSplashPlayerap plication/futuresplash", "3": "WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm", "4": "NativeClientExecutableapplication/x-nacl", "5": "PortableNativeClientExecutableapplication/x-pnacl" ,"6":"PortableDocumentFormatapplication/x-google-chrome-pdf"},"screen":{"width":1600,"height":900,"colorDepth":24}," fonts":{"0":"monospace", "1":"DejaVuSerif", "2":"Géorgie", "3":"DejaVuSans", "4":" ;TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono","9":" ;NimbusMonoL","10":"CourierNew","11":"Courier"}}

Il est identique dans Selenium et dans Chrome.

VPN fonctionnent pour un usage unique, mais ils obtiennent détecté après le chargement de la première page. Il est clair que du JavaScript est exécuté pour détecter Selenium.