我认为这是一个很棒的想法。对于许多类型的论坛来说,明确告知用户存在某些内容并不是安全漏洞,反而能显著提升无障碍访问体验。
真正的挑战在于如何恰当地命名该站点设置,并清晰地解释其功能。以下是我的初步方案,欢迎提出修改建议。
以下是简要规格说明:
-
新增一个站点设置
detailed_404,默认值为false。说明:“向用户提供更多详情,解释为何无法访问特定主题。注意:此设置安全性较低,因为用户将能够判断某个 URL 是否包含有效主题。” -
启用后,在主题控制器中,如果权限检查失败,则返回一个包含失败原因的 JSON 对象。
-
在前端应用程序中使用这些详情显示相应的错误消息:
-
如果是匿名用户:“抱歉,您需要登录后才能查看该主题。”
-
如果已登录:
-
如果该主题仅限制给一个群组(不包括工作人员群组):“该主题仅限 GROUP_NAME 访问。”并包含 申请访问权限 按钮。
-
如果该主题限制给多个群组,则显示通用消息:“您无权访问此主题。请联系为您提供链接的人以申请访问权限。”
-
-