看到匿名用户和爬虫流量,虽然网站是私有的

我协助运营一个私有的 Discourse 实例,不禁注意到仪表板中显示有一些记录的匿名用户和网络爬虫流量。仔细查看后,我发现这种情况以前也发生过,只是数量较少。

我已启用“需要登录”选项,并且我们的 SSO 已配置为仅允许符合特定条件的用户登录。是否还有其他设置需要我启用?谢谢!: )

您应该不需要再做其他操作……这些爬虫流量很可能来自访问 community.yoursite.com/login 的爬虫。如果您查看 community.example.com/admin/reports/web_crawlers,可以了解特定爬虫访问您网站的频率。

您可以采取以下一些措施来减少爬虫流量:

  • 尝试在 robots.txt 中禁止爬虫访问 /login(路径为 community.example.com/admin/customize/robots)……您可能会看到爬虫流量有所下降(但可能无法完全消除,因为有些爬虫并不遵守 robots.txt 规则)。

  • 查看 /admin/reports/web_crawlers 中问题最严重的爬虫,并将它们的 User-Agent 添加到“屏蔽的爬虫 User-Agent"站点设置中。

除了 Kris 所写的内容外,每次发起 SSO 登录请求时,系统还会向您的网站的登录页面或首页发送匿名请求。

此外,您的网站的条款与隐私页面通常也可以由匿名用户访问。

如果你使用的是 VPS,或者在 Discourse 前面部署了 Nginx(Apache 也可以,但 Nginx 更简单),屏蔽机器人会容易得多。Discourse 的用户界面……不太好上手,因为外面有大量的机器人。robots.txt 几乎没什么用,因为很少会有人遵守它,甚至连 Google 都不遵守。

问题不在于那些试图访问你 Discourse 的敲门者。他们真正寻找的是其他东西:

  • 成百上千的脚本小子在测试你是否运行了 WordPress,并试图利用漏洞(大多是旧漏洞,但依然存在)
  • SEO 爬虫和其他蜘蛛程序试图分析你的内容,主要是因为他们想从中获利
  • 当然还有搜索引擎

这些行为本身不会造成真正的破坏(比如入侵),但响应它们的请求纯粹是在浪费金钱。

问题在于你的服务器必须响应所有这些请求。很快,大部分负载将来自机器人,而非真实用户。当你拥有 50 到 500 个机器人对应一个真实用户时,这完全是正常情况。

而所有这些成本最终都由你承担。

我没有全球受众,因为我的网站(包括 Discourse)完全是芬兰语的。因此,我拥有一个强大的工具,但它只能在 VPS 上使用:地理封锁。

我很抱歉来自俄罗斯、中国、印度、巴基斯坦、伊朗、伊拉克和越南的朋友们,但当我屏蔽这些国家后,我的机器人负载下降了约 90%。

对抗机器人是一场永无止境的斗争。而当论坛不是私密时,Discourse 提供的工具非常有限。不过,当然,有总比没有好。

请不要误解我的意思。我并不是说应用程序应该去做本应由服务器完成的工作。我只是想表达,你不能完全依赖 Discourse。