Allow members to remove restricted tags / categories from tracking preferences の議論を継続します。
概要
ユーザーが現在表示しているトピックが削除された場合、連続スクロール(上下)を行うと posts.json API呼び出しの無限ループが発生します。これらの呼び出しは一貫して 403 Forbidden エラーを返しますが、アプリケーションは削除を認識せず、存在しないコンテンツの読み込みを停止しようとしないため、継続的なバックグラウンドネットワークアクティビティが発生し、ユーザーエクスペリエンスが損なわれます。
再現手順
- 準備(管理者/モデレーターユーザー):
- トピック削除権限を持つユーザー(例:管理者またはモデレーター)でログインします。
- スクロールできるコンテンツがあることを確認するために、いくつかの投稿を含む新しいトピックを作成します。
- このトピックのページURLをすぐに使えるようにしておきます。
- ユーザーエクスペリエンス(一般ユーザー):
- 一般ユーザー(削除権限なし)でログインします。
- 新しいブラウザタブまたはウィンドウを開きます。
- ステップ1で作成したトピックに移動します。
- ブラウザの開発者ツールを開き、「ネットワーク」タブに移動します。クリーンな表示のために、既存のリクエストをクリアします。
- 同時削除と操作:
- 一般ユーザーがトピックページにいる間に(ステップ2)、管理者/モデレーターアカウント(ステップ1)を使用してトピックを削除します。
- トピックが削除された直後に、一般ユーザーは削除されたトピックのページで上下にスクロールしようとします。
- 観察:
- 一般ユーザーのブラウザのネットワークタブで、
https://discourse-url/t/xxxxx/posts.json?(xxxxxは削除されたトピックID)への継続的なGETリクエストが送信されていることを確認します。 - これらのリクエストがすべて一貫して
403 ForbiddenHTTPステータスコードを返していることに注意してください。 - アプリケーションは、トピックが削除されたことを示すメッセージを表示せず、これらの失敗したスクロールリクエストの送信を停止しません。
- 一般ユーザーのブラウザのネットワークタブで、
考えられる結果
- 私のコミュニティでは、サイバー攻撃を防ぐためにCloudflareを使用していますが、このバグにより一部のユーザーがリクエストを送信しすぎ、レート制限を受けました。