阻止离线浏览器

阻止离线浏览器

有没有办法阻止在日志中显示为“Mozilla”的离线浏览器(如 Teleport Pro、Webzip 等)?

示例:Webzip 在我的网站日志中显示为“Mozilla/4.0 (compatible; MSIE 8.0; Win32)”

Teleport Pro 在我的站点日志中显示为“Mozilla/4.0 (兼容;MSIE 7.0;Windows NT)”

我使用 .htaccess 文件进行了一些测试,但结果都是我的浏览器被阻止(Mozilla 和 Chrome),当然我不想阻止普通访问者,只想阻止带宽窃取者(他们的请求也会消耗大量 CPU/RAM),而且看起来这些离线浏览器甚至会忽略 robots.txt 文件。有人知道如何识别和阻止它们吗?如果可以的话请给我举个例子。

答案1

简短回答:否

长答案:...

大多数“离线浏览器”/抓取工具仅下载原始 HTML/JS/CSS,稍后由浏览器处理。如果这些工具的用户代理字符串看起来像合法的“在线浏览器”,那么你就只能依靠它们,因此无法阻止它们。

如果他们在抓取数据时执行 javascript(对于使用 javascript 加载页面部分内容的网站等非常有用),那么您可以测试他们的 JavaScript API,看看他们有哪些功能,并以此方式定位他们。然而,这几乎毫无意义,因为他们可能会使用类似WebKit其他合法浏览器也使用此功能。

一些抓取工具可能会遵守 Robots.txt 文件,但它们更可能是 Google 搜索/缓存之类的抓取工具,而不是“离线浏览器”。

最后一种方法是使用身份验证,下载隐藏在身份验证之后。只要离线抓取工具的用户不向其提供经过身份验证的会话,这种方法就会有效。

希望有帮助:)

答案2

我真的没有好的答案,只有一些想法。但这是一个有趣的问题。我认为答案并不简单,除非其他人投入了大量精力编写程序来实现这一点。如果他们不想告诉你他们是机器人,他们就不必这么做。你必须使用某种技巧才能看出他们是不是机器人。

也许您可以在页面顶部放置一个人类无法跟踪的隐形链接,然后阻止任何跟踪该链接的人。

所谓不可见,是指将其放入 html 注释中。我对离线浏览器了解不够多,不知道它们是否足够智能,不会跟踪 html 注释中的链接。

每隔 x 秒点击一次新链接的任何人都是机器人。屏蔽他们。

像这样的东西。

答案3

如果您需要保护大量下载,那么处理此问题的最佳方法是将它们置于登录状态。正如您所发现的,通过 htaccess 或针对用户代理的 robots 进行阻止将面临阻止合法流量的风险。

相关内容