【问题标题】:How do I make sure my website can block automation scripts, bots?如何确保我的网站可以阻止自动化脚本、机器人?
【发布时间】:2011-03-20 14:35:05
【问题描述】:

我想确保我的网站屏蔽了 Selenium 和 QTP 等自动化工具。有没有办法做到这一点 ? Selenium 必然会因网站上的哪些设置而失败?

【问题讨论】:

  • 你为什么要这样做?由于自动化工具是用来模仿用户的,因此阻止它们的最佳方法是拔掉您的网络服务器,在上面浇上混凝土,然后逃跑。但也许你有充分的理由。
  • 更多关于 serverfault 的问题 - 如果你有一个好的防火墙 - 限制每个 IP 或用户每秒(或 X 次)的 TCP 连接数量。也可能是 Apache 插件。
  • 我同意@Scharron - 你想达到什么目的?如果您以某种方式阻止了 Selenium/QTP,有什么可以阻止人们尝试使用其他工具,或者使用 curlwget 或 Apache HttpClient 编写自己的工具?
  • 我认为最好的办法是让您的用户/用户使用一些 selenium 不支持的浏览器,而不是检查用户代理。
  • 郑重声明,我认为这是一个有效的问题。由于像 Selenium 这样的工具易于使用,因此技术知识很少的用户可能会编写违反网站所有者条款的脚本。示例包括参加比赛、提交投票、评论或抓取内容。一旦为这些编写了脚本,就可以轻松地重复运行。

标签: automation web bots


【解决方案1】:

考虑到原始问题中的 cmets 提出“您到底为什么要这样做?”,您基本上需要遵循任何网站用来验证用户是否真的是人类的相同策略。诸如要求用户进行身份验证或从图像中输入文本等方法可能会起作用,但这可能会产生阻止谷歌爬虫和其他一切的效果。

基于用户代理字符串或类似的东西做任何事情都是无用的。这些都是微不足道的假。

限速连接或类似的连接可能效果有限,但您似乎也会无意中阻止任何网络爬虫。

【讨论】:

  • 我同意@Gian 的观点,防止某人自动与您的网站进行用户交互的最佳方法是引入验证码之类的东西。 en.wikipedia.org/wiki/CAPTCHA
  • 使用 REcaptcha (en.wikipedia.org/wiki/ReCAPTCHA) 将其提升到一个新的水平。然后,您可以防止自动交互,同时帮助将旧书和报纸数字化!
  • 我不认为 CAPTCHA 是最好的解决方案,因为它们的破解成本很低。运行自动化脚本的人可以轻松绕过它。如果您不希望任何人在您的网站上运行自动化脚本,解决方案是首先没有网站。
  • 多么奇怪的建议。您防止自动访问网站的解决方案是没有网站?
【解决方案2】:

虽然这个问题看起来很奇怪,但很有趣,所以我试图调查可能性

除了添加一个最佳且唯一的最终解决方案 CAPTCHA 之外,您还可以通过将以下 JavaScript 添加到您的页面来阻止 Selenium(此示例将重定向到 Google 页面,但您可以做任何您想做的事情):

<script>
var loc = window.parent.location.toString();
if (loc.indexOf("RemoteRunner.html")!=-1) {
  // It is run in Selenium RC, so do something
  document.location="http://www.google.com";
}
</script>

我不知道如何阻止其他自动化工具,我不确定这是否不会阻止 Selenium IDE

【讨论】:

    【解决方案3】:

    这是一个有效的问题并且是可能的。尝试使用 Selenium 登录 Google,您很快就会发现它会显示一条消息,说它不允许用户使用自动化软件登录。这是一篇解释如何使用 JavaScript Can a website detect when you are using Selenium with chromedriver?

    【讨论】:

      【解决方案4】:

      要 100% 确定不会针对您的网站运行任何自动漫游器/脚本,请不要有在线网站。这肯定会满足您的要求。

      得益于众包和 OCR 方法,CAPTCHA 很容易破解,即使成本不高。

      代理可以在野外免费找到,也可以以极低的成本批量获得。同样,对于限制连接速率或检测机器人毫无用处。

      一种可能的方法是在您的应用程序逻辑中,通过电话验证、信用卡验证等方式实施增加访问网站的时间和成本的方法。您的网站永远不会起步,因为没有人会信任您的网站处于起步阶段。

      解决方案:不要让您的网站上线并期望能够有效地消除机器人和脚本的运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-03
        • 1970-01-01
        • 1970-01-01
        • 2011-10-28
        • 2016-10-28
        • 2016-10-20
        • 2012-04-14
        相关资源
        最近更新 更多