我们的网站上有几个爬虫。它们访问内容的风险有多大?
在我必须采取我几乎不具备专业知识的屏蔽措施之前,什么是“可接受的爬虫负载/风险”?
它们只能抓取公开网站,这意味着不会发生安全漏洞。但是的,它们可以访问公开内容。
当负载过高时,会产生负面影响,您应该购买更多的 CPU 和/或 RAM。嗯,我不知道 Discourse 上这种情况有多容易发生,因为解决方案不同,但基于 PHP 的 WordPress 很容易被拖垮。但是 Discourse 会为机器人提供静态的、轻量级的内容,前提是它知道谁是人类,谁不是。如果机器人提供了非常假的 user agent,它会得到什么……大量的 JSON 文本?
如果机器人通过了登录、信任级别等障碍,我猜团队将处于恐慌模式,并且必须立即让所有人都回来工作 ![]()
另外请注意,您可以通过管理员设置轻松阻止爬虫。
我将非常感激知道如何……
希望那不仅仅是编辑robots.txt,因为它只对行为良好的机器人有效。实际上只有一个有效的但有点困难的解决方案:反向代理。
这种方法很有效——我们自己也在使用它,并向我们的托管用户推荐它。
我应该阅读 Discourse 正在使用过滤功能吗?
我不确定您在问什么。我们默认不阻止任何内容,但我们为管理员提供了选择性工具。
那么,您是相信机器人会 a) 读取 robots.txt,b) 遵守规则。嗯,那些行为不端的机器人两者都不会做。我们又回到了原点:如果机器人是任何一种问题,反向代理是最好的解决方案。
谢谢。我想知道这一点。
是的,我明白你的意思了。不,我们并不假设所有机器人都会表明自己是爬虫或遵守规则——这确实是一门不精确的科学。我只是在为 OP 提供第一个缓解措施。
我们目前正在研究更具体地限制流量的方法,但这并非易事。
注意到托管在 discourse 上的站点的爬虫数量远低于 DigitalOcean 服务器上的站点,并且这些站点的默认管理员设置相同。
托管站点每天通常有不到十个爬虫,平均约 4 个。有时会有高峰,例如最近一月最后一天有 77 个爬虫。
几乎没有活动的 DigitalOcean 站点平均每天有约 30 个爬虫,不知道这是否重要,服务器或域的类型为什么会有更多的爬虫?
这些通常是为搜索引擎搜索/索引公共站点+内容,以便搜索引擎能够找到它们,这对于希望吸引更广泛受众的站点来说可能是一件好事,因为人们可以通过搜索在 discourse 站点上讨论的内容来找到您的站点。
爬虫可能还有其他用途,我不知道它们的所有用途。默认情况下,这些爬虫在设置中被拒绝访问,您可能已经知道了:
作为一个相对不懂电脑的人,我一直在关注您关于爬虫的专家意见,感觉就像一个残疾观众在观看美国网球公开赛的决赛……感谢您向我介绍了网站安全这个令人费解的部分。
我们由 Discourse 高效托管的论坛是一个高度机密的地方。受邀加入的用户非常担心保密性,我正尽我所能让他们放心。爬虫可能没有太大危害(?!),但如果可能的话,我想完全阻止它们,因为我们对我们的内容被索引或以任何方式被知晓不感兴趣。
我现在意识到优化设置是第一步。是否可以由 Communitech 支持团队的一员帮我检查一下这方面的设置?
感谢您的关注。
啊,很高兴看到这一点,我以为它只是依赖 Redis 来更快地提供最近渲染的内容。正如你所提到的,当我的论坛运行在 Drupal 上时,坏机器人,有时甚至是搜索引擎爬虫,偶尔会把它拖垮。但我安装了一个插件,该插件创建了一个匿名访问页面的静态 HTML 文件缓存,并为它们自动创建了 Nginx 重写规则。Nginx 会在不引导 Drupal PHP 代码的情况下提供这些文件,速度非常快,并且可以处理更多的匿名流量负载。
你好。需要注意的是,这没有任何安全影响。爬虫程序只能访问公共网站。如果您的网站需要登录,它们将无法访问。
另外需要澄清的是,Communiteq 与我们没有任何关系,所以如果他们是您的主机,那么您不是由 Discourse 托管的。![]()
我原本计划发送私人回复,但这样做可能对其他人也有帮助,所以我在这里发布。
它们只访问您的主页(登录页),无法访问内容。
它们可能有害。根据爬虫的类型,它们可能会使您不希望公开的信息变得可访问。从技术上讲,爬虫只能访问公开信息,但爬虫(以及相关的搜索引擎)非常擅长发现信息并使其可访问。
所以让我们看看您的情况。
您的 robots.txt 显示
User-agent: *
Disallow: /
所以它设置为拒绝所有搜索引擎爬虫。 ![]()
但是,这本身还不够,因为 robots.txt 是基于礼貌的,并且不会被“坏”机器人遵守。坏机器人可以简单地选择忽略 robots.txt。这就像一个“禁止入内!”的标志——窃贼不会遵守它。
您论坛的主要安全措施是启用了“需要登录”。这足以阻止任何爬虫。 ![]()
尽管我们已经确定爬虫无法进入,但最好再进一步。
您还启用了“仅限邀请”和“允许新注册”,并且“允许邀请的群组”设置为 TL2。这意味着任意用户无法注册,但 TL2 或更高等级的任何用户都可以邀请其他用户加入社区。作为安全网,您已启用“必须批准用户”,这很好。获得社区访问权限的唯一方法是获得社区中已受信成员的邀请,并且管理员需要允许您进入。 ![]()