我到处都读到,网站不可能检测到用户正在使用selenium .但是为什么呢?
例如,firefox中的webdriver为<html>
元素添加了一个“webdriver属性”。所以<html>...
会转到<html webdriver="true">...
我很困惑..。为什么不可能检测到why驱动程序?
我写了一个小Javascript来得到document.outerHTML..。还有webdriver属性!=检测到了!?
下面是我在浏览器中测试的、没有Webdriver的代码:
<html>
<head>
<script type="text/javascript">
<!--
function showWindow(){
javascript:(alert(document.documentElement.outerHTML));
}
//-->
</script>
</head>
<body>
<form>
<input type="button" value="Show outerHTML" onclick="showWindow()">
</form>
</body>
</html>
请有人解释一下为什么不可能检测到Webdriver?
发布于 2014-07-25 22:14:13
发布于 2016-12-28 09:56:39
是的,selenium是detectable.check 网站能检测到什么时候你使用selenium和色度驱动器吗?,如果有人使用Firefox驱动程序实现自动化,那么如果您将这些代码放在客户端,则很容易检测到
try{
if(window.document.documentElement.getAttribute("webdriver"))
alert("Caught in 1st case :- Selenium Webdriver is banned!!!");
}
catch(Exception){}
try{
if(navigator.webdriver)
alert("Caught in 2nd case :- Selenium Webdriver is banned!!!");
}
catch(Exception){}`
但是,如果您使用的是chrome或IE驱动程序,相同的代码不会有帮助。
发布于 2014-07-25 04:41:18
我不得不站在SiKing一边,因为无论您使用什么插件,都不是实际硒工具的一部分。你能给你的副词发个链接吗?也许这会让你更清楚一些。
一般来说,WebDriver简单地自动使用浏览器,目的是尽可能地复制人类用户的行为。这本身对服务器是不可见的。除非您正在更改浏览器的用户代理,否则服务器将无法轻松地看到任何类型的使用中的自动化。
然而,虽然我最近才开始研究这个问题,但应用程序的反复自动化使用可能会在服务器日志中显示模式,而就与应用程序的交互而言,这些模式可能比人类用户更加一致。例如,如果您使用Selenium来抓取一个站点,您可能会因为自动会话的特性而留下一些指纹。例如非常一致的点击、输入、页面请求等可能会形成引人注目的日志模式,这可能会暴露出自动化。
现在,除非您在系统上产生大量的流量或大量重复操作,否则您不太可能被注意到。需要一些在日志中产生异常的东西,或者非常敏锐的系统管理员才能触发任何形式的人工调查.即使如此,也得有人知道要找什么才能做出准确的决定。
https://stackoverflow.com/questions/24938916
复制相似问题