Robots.txt 安全策略?

信息安全 Web应用程序
2021-08-22 15:36:32

有没有办法基本上在您的顶级域上设置允许所有策略,而任何子域都禁止所有策略?我宁愿我的面向公众的应用服务器不被索引,但据我所知,当它通过链接从我们的顶级域跳转到子域时,没有机器人甚至轮询 robots.txt。

我一直觉得绘制 robots.txt 的所有禁区是向任何想知道好东西在哪里的人提供路线图。

哪种类型的 Robots.txt 安全策略最适合 webapp 环境?

4个回答

您假设忽略子域上的 robots.txt 是不正确的。大多数搜索引擎会抓取并遵守各个子域的 robots.txt。

如果你希望你可以指示蜘蛛不要索引你网站的元素而不在 robots.txt 中列出它们,通过以下任一方式:

  1. 添加<meta name="robots" content="noindex" />到网页的 HTML
  2. 添加X-Robots-Tag: noindex到您的 HTTP 标头

此处提供更多详细信息

但是,无论如何,您都不应该依赖 robots.txt 来确保安全。您在这里倾向于通过默默无闻的安全性,这被广泛认为是一个坏主意。

安全方面,robots.txt 的使用有两个规则。

  1. 不要尝试通过 robots.txt 实施任何安全措施机器人文件只不过是一个善意的建议,虽然大多数搜索引擎爬虫都尊重它,但恶意爬虫却笑得很开心并继续他们的业务。如果它被链接到,它可以被找到。
  2. 不要通过 robots.txt 暴露有趣的信息具体来说,如果您依靠 URL 来控制对某些资源的访问(这本身就是一个巨大的警钟),将其添加到 robots.txt 只会使问题变得更糟:扫描 robots.txt 的攻击者现在会看到秘密您试图隐藏的 URL,并将精力集中在您网站的那部分(您不希望它被编入索引,它被命名为“sekrit-admin-part-do-not-tell-anyone”,所以它可能很有趣)。

因此,无论如何,请使用 robots.txt 告诉搜索引擎您希望它们索引您网站的哪些部分,以及何时重新访问它们,但切勿使用它来确保安全。如果您有要隐藏的内容,请使用实际保护(如果您不希望某些内容出现在搜索引擎结果中,那么您可能无论如何都应该使用密码保护它)。

您永远不应依赖 robots.txt 为您提供任何自由裁量权或安全性。

当然,大型引擎会尊重它,但任何人都可以编写爬虫并找到“好东西”,正如你所说的那样。

如果您的网络服务器上存在您不希望每个人都能够访问的资源,您应该使用 .htaccess 或类似机制来限制权限,具体取决于服务器。

正如 Kenny 所说,不要依赖 robots.txt 来确保安全。如果您不希望将页面编入索引,则有三个选项(如果爬虫遵循指南,有些则不会):

  1. 添加一个rel=nofollow,noindex链接标签,爬虫不应该遵循或索引。
  2. 将 robots.txt 添加到每个域,并将子域上的 robots.txt 设置为 deny /
  3. 将标题标签添加<meta name="robots" content="noindex,nofollow" />到爬虫不应索引的每个页面。
  4. (可选)还有一个 HTTP 标头X-Robots-Tag: noindex,nofollow,其作用与标头标记相同。

会有爬虫忽略这一点,但大的应该遵循这些规则而不是索引这些页面。