我一直在搜索,找到了一些相关话题,但大多涉及 SSO,而我们尚未配置 SSO。
我们使用的是 Discourse 标准认证,同时也通过 OAuth2 插件进行认证。
我们有几个类别要求用户必须属于特定的用户组。
如果我们为未登录用户创建一个指向受保护类别的链接(该用户已加入正确的用户组),他们会看到正常的 404/Oops 页面。他们必须先点击退出,登录,然后重新浏览回到该受保护类别。
是否有办法在链接到 /login 页面时提供重定向 URL 指向该隐藏类别,或者更改某个设置,使访问受保护类别时自动提示登录?
提前感谢…
难点在于,任何其他处理方式都会暴露该私密分类的存在。
传统的建议是修改 404 页面的提示文案,告知用户可能需要登录后才能查看该内容。
这种情况已经出现得足够多了,也许我们应该考虑在 404 页面添加一个可选的站点设置,以放宽安全限制,@eviltrout……这样,当匿名用户点击
http://discourse.example/com/t/topic-in-secret-category
时,他们会看到
抱歉,您需要登录后才能查看该主题
而不是
哎呀!该页面不存在或是私有的。
(这是否可以扩展为向已登录用户显示需要访问哪个群组?)
Robin,你怎么看?
eviltrout
(Robin Ward)
5
我认为这是一个很棒的想法。对于许多类型的论坛来说,明确告知用户存在某些内容并不是安全漏洞,反而能显著提升无障碍访问体验。
真正的挑战在于如何恰当地命名该站点设置,并清晰地解释其功能。以下是我的初步方案,欢迎提出修改建议。
以下是简要规格说明:
@dan 在完成加密插件的工作后,你能把那个添加到你的列表中吗?
我觉得 detailed_404 可能会更好,也更简洁?
我们是否希望针对受限类别中的主题列表和受限类别中的单个主题都执行此操作,还是仅针对受限类别中的单个主题执行?
因为目前这两者的行为是不同的。
eviltrout
(Robin Ward)
10
我没看到很多人抱怨无法查看主题列表,而不是主题本身。除非真的很容易,否则我不会去麻烦。