谷歌如何保护其javascripts不被机器人执行?

时间:2012-08-28 21:44:30

标签: javascript bots

我想让浏览器用户只能访问我网站的某些区域,并且无法访问自动多线程漫游器。我这样做是为了保护我的数据,这是我打算使用的措施之一。

我想要求所有请求包含一对数字,这些数字必须使用javascript计算,这将被混淆和模糊。但是,在那之后,没有任何东西可以阻止机器人编写器抓住像htmlunit这样的javascrpt僵尸网络引擎并只执行javascripts。

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

必须有一招。任何人都可以向我提供一个关于如何在我的页面上执行此操作的详细信息吗?

2 个答案:

答案 0 :(得分:0)

根据您的要求,我将实施某种类型的身份验证。当然,关于你的用户群有多大和已知。一些选项是:

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

答案 1 :(得分:-1)

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

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

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

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

Google验证码
来自谷歌的capcha引擎非常好并且易​​于实现。
该引擎还没有被机器人破坏。

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