继续讨论 允许成员从跟踪偏好设置中删除受限标签/类别:
概述
当用户正在积极查看一个随后被删除的主题时,连续滚动(向上或向下)会触发无限循环的 posts.json API 调用。这些调用持续返回 403 Forbidden 错误,但应用程序未能识别删除或停止加载不存在的内容,导致持续的后台网络活动和糟糕的用户体验。
复现步骤
- 准备(管理员/版主用户):
- 以具有主题删除权限的用户(例如,管理员或版主)登录。
- 创建一个包含几篇帖子的新主题,以确保有内容可供滚动。
- 记下该主题的页面 URL。
- 用户体验(普通用户):
- 以普通用户(无删除权限)登录。
- 打开一个新的浏览器标签页或窗口。
- 导航到步骤 1 中创建的主题。
- 打开浏览器的开发者工具,切换到“网络”选项卡。清除任何现有请求以获得清晰的视图。
- 同时删除和交互:
- 当普通用户在主题页面上(来自步骤 2)时,使用管理员/版主账户(来自步骤 1)删除该主题。
- 主题删除后,立即让普通用户尝试在已删除主题的页面上向上或向下滚动。
- 观察:
- 在普通用户的浏览器“网络”选项卡中,观察到持续的 GET 请求被发送到
https://discourse-url/t/xxxxx/posts.json?(其中xxxxx是已删除的主题 ID)。 - 注意到所有这些请求都持续返回
403 ForbiddenHTTP 状态码。 - 应用程序没有显示任何表明主题已被删除的消息,也没有停止发送这些失败的滚动请求。
- 在普通用户的浏览器“网络”选项卡中,观察到持续的 GET 请求被发送到
潜在后果
- 在我的社区中,我们使用 Cloudflare 来防止网络攻击,此 bug 导致一些用户发送了过多的请求而被速率限制。