1. 通过检测浏览器状态来进行人机检测
使用selenium打开浏览器
通过
selenium打开的浏览器是出于测试状态的,和正常的浏览器不太一样。
- 通过
selenium打开的浏览器哪怕人工手动拖动验证码也会被判断出来是机器操作并显示"出错了"。 - 通过查阅资料发现阿里人机交互会检查
window.navigator.webdriver是否为空,通过代码处理后可以绕过。
正常打开window.navigator.webdriver值:
> window.navigator.webdriver
undefined
使用selenium打开window.navigator.webdriver值:
> window.navigator.webdriver
true
绕过代码
# 通过浏览器的 devtool 将 .webdriver 属性改为"undefined"
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})""",
})

本文探讨了如何通过修改浏览器状态和使用win32api模拟鼠标拖动来绕过网站的人机检测机制,包括修改window.navigator.webdriver属性和使用win32api进行自然的鼠标操作,以欺骗验证码系统。
最低0.47元/天 解锁文章
477

被折叠的 条评论
为什么被折叠?



