【问题标题】:How does google protect its javascripts against being executed by bots?谷歌如何保护其 JavaScript 免受机器人执行?
【发布时间】:2012-08-23 11:23:39
【问题描述】:

我想让我网站的某些区域仅供浏览器用户访问,而自动化多线程机器人无法访问。我这样做是为了保护我的数据,这是我计划使用的措施之一。

我想过要求所有请求都包含一对数字,这必须用 javascript 计算,这将被混淆和模糊。但是,在那之后,没有什么可以阻止机器人编写者抓住像 htmlunit 这样的 javascrpt 机器人引擎并执行 javascripts。

Google 似乎以某种方式解决了这个问题。我记得大多数时候我在启用了 adwords 的页面上运行 HtmlUnit,脚本引擎崩溃了。然而,在真正的浏览器中,页面运行良好。

这一定是有窍门的。谁能指出我如何在我的页面上执行此操作的好信息?

【问题讨论】:

  • 您能否提供更多背景信息来说明您为什么要实施此功能? robots.txt 文件是否不够严格,无法满足您的要求?
  • 我正在创建一个网站,其中将包含专有数据。我希望合法用户可以访问它,并且我希望尽可能难以大规模提取该数据。 robots.txt 将被合法机器人认可,而不被提取机器人认可
  • 似乎您需要适当的授权/身份验证,或者至少(可悲的是)验证码。机器人比你想象的更聪明
  • 机器人通常可以很容易地解决验证码,而验证码会惹恼真正的用户。如果我能弄清楚这是如何完成的,我宁愿尝试使用 javascript 来执行此操作
  • 设置登录系统即可。这是唯一的方法。机器人可以运行执行 JavaScript 以抓取数据的无头 WebKit 渲染器。

标签: javascript bots


【解决方案1】:

根据您的要求,我将实施某种类型的身份验证。当然,关于您的用户群的规模和知名度。一些选项是:

  1. 从 javascript 文件或 ajax 调用中包含数据。 大多数机器人不会从网页中抓取包含 javascript 的文本。也许加载一个空白页面,给一个短暂的延迟(2-3 秒),然后加载内容。这样一来,大多数 (?) 机器人只会检测到空白页。
  2. HTTP 身份验证会要求用户输入用户名和密码,但管理起来非常简单。
  3. 验证码
  4. 用户帐户可能使用 php。不过,这可能会超出您的预期。

【讨论】:

    【解决方案2】:

    在可用性和安全性之间找到平衡总是很困难的。大多数(高级)机器人都可以解析 javascript,甚至像 Facebook 或 Google 这样的大公司在打击垃圾邮件和其他有害机器人方面也遇到了麻烦。

    上面的大多数答案都可以帮助您提高机器人的难度。对可用性影响最小的一些可能的解决方案是:

    Facebook 登录
    用户不需要重新注册,可以使用他的Facebook帐户登录。

    网址:https://developers.facebook.com/docs/facebook-login/v2.0

    谷歌验证码
    谷歌的验证码引擎非常好,易于实现。
    该引擎还没有被机器人破坏。

    网址:https://www.google.com/recaptcha/intro/index.html

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 2012-01-11
      相关资源
      最近更新 更多