防止自动化工具访问网站

时间:2010-08-19 05:17:54

标签: asp.net authentication web-scraping recaptcha

我们网站上的数据很容易被删除。我们如何检测人类是在查看网站还是工具?

一种方法是计算用户在页面上停留的时间。我不知道如何实现这一点。任何人都可以帮助检测并阻止自动化工具从我的网站上抓取数据吗?

我在登录部分使用了安全图像,但即使这样,人类也可以登录然后使用自动化工具。当一段时间后重新显示图像后,用户可能会再次输入安全图像,使用自动工具继续抓取数据。

我开发了一个刮刮另一个网站的工具。所以我只想阻止这种情况发生在我的网站上!

6 个答案:

答案 0 :(得分:8)

不要这样做。

这是网络,如果他们真的需要,你将无法阻止某人抓取数据。我之前做了很多次,并且解决了他们实施的每一项限制。实际上有一个限制激励我进一步尝试获取数据。

您对系统的限制越多,您为合法用户提供的用户体验就越差。只是个坏主意。

答案 1 :(得分:3)

这是网络。您需要假设您放在那里的任何东西都可以被人或机器读取。即使你今天可以阻止它,有人会明白如何绕过它。 Captchas have been broken for some time now,迟早会有替代方案。

但是,here暂时是一些想法。

here还有一些。

和我最喜欢的。我遇到的一个聪明的网站有一个很好的网站。它有一个类似“我们的”关于我们的问题“页面,我们支持办公室的街道名称是什么?”或类似的东西。需要一个人找到“关于我们”页面(该链接没有说“关于我们”它说的类似于一个人会想出的东西)然后找到支持办公室地址,(与主要公司不同)办公室和页面上列出的其他几个)你必须看几场比赛。目前的计算机技术无法弄清楚它能否找出真正的语音识别或认知。

谷歌搜索“Captcha替代品”的情况相当多。

答案 2 :(得分:1)

这样做不会有误报(和烦人的用户)的风险。

  

我们如何检测人类是在查看网站还是工具?

你不能。您将如何处理解析人类页面的工具,如屏幕阅读器和辅助功能工具?

  

例如,一种方法是计算用户在页面中停留的时间,从中我们可以检测是否涉及人为干预。我不知道如何实现它,只是想一想这个方法。任何人都可以帮助如何检测和阻止自动化工具从我的网站上抓取数据吗?

您不会检测自动工具,只会检测到异常行为。在您定义异常行为之前,您需要找到通常的行为。人们以不同的顺序查看页面,浏览器选项卡允许他们执行并行任务等。

答案 3 :(得分:0)

我想唯一好的解决方案是限制数据的访问速度。它可能无法完全阻止抓取,但至少可以限制自动抓取工具的工作速度,希望低于不会刮掉数据的水平。

答案 4 :(得分:0)

我应该记下如果有遗嘱,那么就有办法

话虽这么说,我想到了你之前提出的问题,这里有一些我想出的简单的事情:

  1. 简单的天真检查可能是用户代理过滤和检查。您可以在此处找到常用抓取工具用户代理的列表:http://www.useragentstring.com/pages/Crawlerlist/

  2. 您始终可以在闪存中显示数据,但我不建议这样做。

  3. 使用验证码

  4. 除此之外,我不确定你能做什么,但我也有兴趣看到答案。

    编辑:

    谷歌做了一些有趣的事情,如果你正在寻找SSN,在第50页左右之后,他们将验证。这是一个问题,看看你是否可以智能地计算用户在你的页面上花费的金额,或者你是否想要在方程中引入分页,即用户在一页上花费的时间。

    使用我们之前假设的信息,可以在发送另一个HTTP请求之前设置时间限制。此时,“随机”生成验证码可能是有益的。我的意思是,可能一个HTTP请求会很好,但下一个请求将需要验证码。你可以随意切换它们。

答案 5 :(得分:0)

抓取工具通过解析网址和阅读网页的源代码来窃取您网站上的数据。如果不是不可能的话,可以采取以下步骤至少使刮擦变得困难。

Ajax请求使得解析数据变得困难,并且需要额外的努力来获取要解析的URL。

即使对于不需要任何身份验证的普通页面也使用cookie,一旦用户访问主页就创建cookie,然后是所有内页面所需的。这使得抓取有点困难。

在网站上显示加密代码,然后使用javascript代码在加载时解密。我在几个网站上看过它。