Um site pode detectar quando você está usando o Selenium com o chromedriver?

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

Estou testando o Selenium com o Chromedriver e notei que algumas páginas podem detectar que você está usando o Selenium mesmo que não haja nenhuma automação. Mesmo quando estou apenas navegando manualmente usando o Chrome através do Selenium e Xephyr Muitas vezes recebo uma página dizendo que uma atividade suspeita foi detectada. Verifiquei meu agente de usuário e a impressão digital do meu navegador, e todos são exatamente idênticos ao navegador Chrome normal.

Quando navego nesses sites no Chrome normal, tudo funciona bem, mas no momento em que uso Selênio estou detectado.

Em teoria, o chromedriver e o Chrome devem parecer exatamente iguais para qualquer servidor da Web, mas de alguma forma eles podem detectá-lo.

Se você quiser algum código de teste, experimente isto:

de pyvirtualdisplay import Display de 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 "argumentos concluídos" driver.get ("http://stubhub.com") 

Se você navegar pelo stubhub, será redirecionado e "bloqueado" em uma ou duas solicitações. Eu estive investigando isso e não conseguem descobrir como eles podem saber que um usuário está usando o Selenium.

Como eles fazem isso?

Eu instalei o plugin Selenium IDE no Firefox e fui banido quando fui para stubhub.com no navegador Firefox normal com apenas o plug-in adicional.

Quando uso o Fiddler para visualizar as solicitações HTTP sendo enviadas para frente e para trás, notei que as solicitações do "navegador falso" geralmente têm "sem cache" no cabeçalho da resposta.

Resultados como este É isso Há uma maneira de detectar que estou em uma página do Selenium Webdriver a partir de JavaScript sugerimos que não deve haver nenhuma maneira de detectar quando você está usando um webdriver. Mas essa evidência sugere o contrário.

O site envia uma impressão digital para seus servidores, mas eu verifiquei e a impressão digital do Selenium é idêntica à impressão digital ao usar o Chrome.

Esta é uma das as cargas de impressão digital que eles enviam para seus servidores: {"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":"Georgia","3":"DejaVuSans","4":" ;TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono","9":" ;NimbusMonoL","10":"CourierNew","11":"Courier"}}

É idêntico no Selenium e no Chrome.

VPNs funcionam para um único uso, mas recebem detectado depois de carregar a primeira página. Claramente, algum JavaScript está sendo executado para detectar o Selenium.