0

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

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

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

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

4

2 回答 2

0

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

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

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

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

facebook登录
用户无需重新注册,可以使用自己的facebook账号登录。

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

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

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

于 2014-07-02T11:01:40.063 回答