是否启用仅限登录用户搜索的选项?

是否有选项可以为匿名用户禁用“搜索”功能?只允许登录用户搜索论坛。提前感谢。

3 个赞

您应该使用 CSS 隐藏搜索框。如果您真的不希望人们找到您的网站,您还需要确保 Google 不会索引您的网站。

1 个赞

您好,请查看此帖子 Hooks from: & to: syntax in yml to disable anonymous searches - #4 by opcourdis

在您的 app.yml 文件中的 env: 部分添加下面这一行,然后运行 ./launcher restart app 可能会有帮助,尽管我想知道是否还有其他方法可以让匿名用户访问内容,他们也可以设置一个会话 cookie 来假装已连接,不过我可能错了。如果任何人对此有任何看法,请随时分享

env:
  DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

我正在尝试这样做,但现在直接链接到搜索页面只会返回以下 JSON:

{
  "failed":"FAILED",
  "message":"You’ve performed this action too many times, please try again later."
}

还有其他方法可以实现吗?

我不允许匿名用户搜索论坛的原因是,一个复杂的机器人正在使用类似这样的查询抓取数据:

/search?q=%40UserName+%23general+in%3Afirst

看起来他们正在对某些用户及其内容进行映射,用于某种数据挖掘任务。为了保护用户数据,我想阻止任何匿名访问搜索功能。问题在于,论坛中存在指向搜索页面的内部链接,因此任何未登录的用户点击这些链接时,都会遇到那个错误的 JSON 消息。

我修改了主题,使得用户在登录之前找不到搜索框,但任何点击现有搜索结果链接的匿名用户都会看到那个 JSON。

今天在我阻止之前,他们向论坛发送了数万次请求。

1 个赞

今天可能会达到 10 万次机器人访问。:weary_face:

去你们自己的论坛看看有没有类似的流量,因为这看起来像是有人在大量抓取论坛数据,用于某种“人物搜索”,将论坛用户名和内容与真实身份关联起来。

1 个赞

你好,我在这里提出的建议与本主题的搜索功能无关,但请问你们是否使用全球性的论坛?如果没有的话,这个工具非常有用:https://github.com/friendly-bits/geoip-shell,而且设置和维护都很简单。

不过,你们社区的成员需要意识到,如果他们前往某些国家,可能无法访问你们的网站。

或者所有使用 VPN 的人。我认为这是一个核选项,会带来如此多的后果,而且这也不是 OP 的变通方案。

还有以下插件:

1 个赞

所以我才问 OP 这是一个全球性的论坛还是国家级别的。如果你住在挪威并使用欧洲 VPN 提供商,它不可能显示为来自某个会被 geoip-shell 工具封禁的遥远大陆国家。

这没什么“核”的,这取决于 OP 的具体情况,让我们看看他怎么说。

@nat 和 @sam,你们怎么看这个请求?

我觉得这很合理,尤其是考虑到我个人在 /search 端点上看到的匿名用户流量。

另一方面,我知道你们最近一直在思考如何让匿名用户也能使用“Ask AI”。

再换个角度想,如果我们正在考虑可用性的配置,那么这是否可以在一定程度上作为该计划的一部分来考虑?

2 个赞

这种情况确实令人遗憾。虽然我坚信搜索功能应该向所有人开放,但我也能理解这个机器人给大家带来的困扰。我认为,如果已知用户来自某些特定地区,那么上面提到的地理位置封锁建议作为第一道防线也非常实用。

起初我考虑过使用 search_allowed_groups,但我认为 allow_anonymous_search(默认值为 true)可能更好。如果基于群组来实现此功能,会使某些依赖 search 的内部功能变得过于复杂。

基于上述方案,当 allow_anonymous_search 被禁用时,匿名用户将无法使用任何搜索功能(包括 API 和 UI)。站点设置的描述也会相应注明这一点。

有一点让我有些犹豫:虽然这个 PR 和站点设置的原因是为了应对恶意行为(griefing),但我想知道,当 allow_anonymous_search 被禁用时,是否仍然应该显示搜索框(即使它不起作用),并鼓励用户注册或登录。不过,我认为这不应该阻碍该 PR 的合并。


此外,我更倾向于不将其他功能混入这个目前仅针对 /search 的具体请求中。

3 个赞

希望有这个功能~~~~~~~~~~~~~~~

同意,这样做很有道理。也同意这不应该阻止你在这里创建的 PR 合并。而且你已经有了这部分内容,这很有帮助:

当设置为 false 时,访问 /search 的匿名用户将被重定向到登录页面。

作为第一步,这足以满足该请求。

1 个赞

嘿,这个已经合并了。

请更新以获取新的 allow_anonymous_search 设置,这样你就可以将其禁用了。

3 个赞

该主题在 4 天后自动关闭。不再允许新的回复。