【问题标题】:Robots.txt and locations that are not referencedRobots.txt 和未引用的位置
【发布时间】:2011-05-04 13:58:55
【问题描述】:

如果我想保护文件夹不被遵守标准的机器人抓取,我可以从 robots.txt 中禁止它。

现在,我遇到的问题是,通过隐藏文件夹,我向其他人展示了它的存在。

那么,如果没有指向它的链接,我是否必须在 robots.txt 中指定一个我不想抓取的文件夹? “好”的爬虫只会正确地跟踪链接,它们不会随机搜索文件夹和文件。

谢谢。

【问题讨论】:

  • 通过默默无闻的安全性很少奏效。尤其是在互联网上。如果“不提供链接”是您对这些位置的唯一防御,那么您应该始终认为该防御已被破坏。
  • 别担心,不仅如此,但我更喜欢尽可能多的障碍,即使是简单的障碍,只要它们不会花费我任何东西,甚至不会花费我的时间。

标签: web-crawler robots.txt


【解决方案1】:

由于robots.txt 中的Disallow 行是前缀,您只需在“隐藏”目录中提及一个前缀,该目录不与任何“公共”目录共享。

因此,如果您的“隐藏”目录称为/topsecrete_donotread/,那么您可以使用Disallow: /tops 来避免它被抓取。

【讨论】:

  • 嗯,这很聪明,我不知道我可以禁止以某事开头的文件夹。
【解决方案2】:

让我向您保证,作为“优秀”网络爬虫的作者,如果网络上有可公开访问的内容,爬虫找到它。如果您创建一个像http://example.com/hidden_folder 这样的文件夹,并认为不发布指向它的链接,没有人会找到它,那您就错了。这比把你的房门钥匙藏在门垫下面好不了多少。尽管爬虫可能不会去搜索hidden_folder,但其他人会。当他们找到它时,他们会发布一个链接,我的爬虫会找到那个链接。

即使没有人去寻找您的隐藏文件夹,也会发生同样的事情。例如,假设您有一个文件http://example.com/hidden_folder/bookmarks.html。在其中,您可以找到所有您喜爱的网站的链接。

当您单击其中一个链接(例如 joesblog.com)时,您的浏览器向 joesblog.com 发送的请求包括引用 url - 您的“隐藏”文件夹中的 html 文件。

您会惊讶于有多少网站发布他们的访问日志。如果 joesblog 是其中之一,那么您会在该站点的某个位置看到一个文件,实际上是“joesblog.com 是从 http://example.com/hidden_folder/bookmarks.html 访问的。”

正如其他人所说,通过默默无闻的安全性是行不通的。如果您的网站上有一些您不想访问的信息,请使用密码或其他方法对其进行保护。不要以为爬虫或人们不会仅仅因为您没有明确告诉他们而发现它。

编辑:

如果您没有在 robots.txt 文件中列出这些文件夹,那么机器人会在给定链接的情况下抓取它们。如果您确实列出了文件夹,那么“好”的机器人将不会爬行。无论如何,“坏”机器人都会爬行。

在我看来,有人阅读您的 robots.txt 以找到指向隐藏目录的链接的可能性低于通过其他方式发现这些链接的可能性。我建议使用@Joachim 提出的解决方案,这将防止“好”机器人爬行,并且不会透露确切的目录名称。

此外,如果您禁用目录列表并且在您的文件夹中没有默认页面,那么转到 http://example.com/hidden_folder/ 的机器人将不会收到任何信息,只会收到一条错误消息,指出无法列出目录内容。

【讨论】:

  • 我的问题被误解了。我在问最好不要指定隐藏在 robots.txt 中的文件夹而不是指定它们,而不是最好不要有任何其他安全选项。
猜你喜欢
  • 2012-07-03
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多