Обзор
Когда пользователь активно просматривает тему, которая впоследствии удаляется, непрерывная прокрутка (вверх или вниз) вызывает бесконечный цикл вызовов API posts.json. Эти запросы неизменно возвращают ошибку 403 Forbidden, однако приложение не распознает факт удаления и не прекращает попытки загрузить несуществующий контент. Это приводит к постоянному фоновому сетевому трафику и нарушает пользовательский опыт.
Шаги для воспроизведения
- Подготовка (пользователь администратора/модератора):
- Войдите в систему под учетной записью, имеющей права на удаление тем (например, Администратор или Модератор).
- Создайте новую тему с несколькими сообщениями, чтобы обеспечить наличие контента для прокрутки.
- Сохраните URL-адрес страницы этой темы.
- Пользовательский опыт (обычный пользователь):
- Войдите в систему под учетной записью обычного пользователя (без прав на удаление).
- Откройте новую вкладку или окно браузера.
- Перейдите по ссылке на тему, созданную на шаге 1.
- Откройте инструменты разработчика браузера и перейдите на вкладку “Сеть” (Network). Очистите существующие запросы для получения чистого вида.
- Одновременное удаление и взаимодействие:
- Пока обычный пользователь находится на странице темы (из шага 2), используйте учетную запись Администратора/Модератора (из шага 1), чтобы удалить тему.
- Сразу после удаления темы обычный пользователь пытается прокрутить страницу вверх или вниз на странице уже удаленной темы.
- Наблюдение:
- На вкладке “Сеть” в браузере обычного пользователя наблюдайте непрерывную отправку GET-запросов к адресу
https://discourse-url/t/xxxxx/posts.json?(гдеxxxxx— ID удаленной темы). - Обратите внимание, что все эти запросы неизменно возвращают HTTP-статус
403 Forbidden. - Приложение не отображает никаких сообщений о том, что тема была удалена, и не прекращает отправку этих неудачных запросов при прокрутке.
Возможные последствия
- В нашем сообществе мы используем Cloudflare для защиты от кибератак, и эта ошибка привела к тому, что некоторые пользователи превысили лимит запросов и были ограничены в скорости.