주제 삭제 후 무한 스크롤 요청 발생

개요

사용자가 삭제된 주제를 능동적으로 보고 있는 동안, 연속 스크롤(위 또는 아래)이 posts.json API 호출의 무한 루프를 트리거합니다. 이 호출들은 일관되게 403 Forbidden 오류를 반환하지만, 애플리케이션은 삭제를 인식하지 못하고 존재하지 않는 콘텐츠 로딩을 중단하지 않아 지속적인 백그라운드 네트워크 활동과 깨진 사용자 경험을 초래합니다.

재현 단계

  1. 준비 (관리자/모더레이터 사용자):
  • 주제 삭제 권한이 있는 사용자(예: 관리자 또는 모더레이터)로 로그인합니다.
  • 스크롤할 수 있는 콘텐츠가 있는지 확인하기 위해 몇 개의 게시물이 있는 새 주제를 생성합니다.
  • 이 주제의 페이지 URL을 준비해 둡니다.
  1. 사용자 경험 (일반 사용자):
  • 일반 사용자(삭제 권한 없음)로 로그인합니다.
  • 새 브라우저 탭이나 창을 엽니다.
  • 1단계에서 생성한 주제로 이동합니다.
  • 브라우저의 개발자 도구를 열고 “Network” 탭으로 이동합니다. 깨끗한 뷰를 위해 기존 요청을 모두 지웁니다.
  1. 동시 삭제 및 상호작용:
  • 일반 사용자가 주제 페이지에 있는 동안(2단계), 관리자/모더레이터 계정(1단계)을 사용하여 주제를 삭제합니다.
  • 주제가 삭제된 직후, 일반 사용자는 이제 삭제된 주제 페이지에서 위 또는 아래로 스크롤을 시도합니다.
  1. 관찰:
  • 일반 사용자의 브라우저 Network 탭에서 https://discourse-url/t/xxxxx/posts.json?(여기서 xxxxx는 삭제된 주제 ID)로 계속되는 GET 요청이 전송되는 것을 관찰합니다.
  • 이 모든 요청이 일관되게 403 Forbidden HTTP 상태 코드를 반환하는 것을 확인합니다.
  • 애플리케이션은 주제가 삭제되었다는 메시지를 표시하지도 않고, 이러한 실패한 스크롤 요청을 중단하지도 않습니다.

잠재적 결과

  • 제 커뮤니티에서는 사이버 공격을 방지하기 위해 Cloudflare를 사용하는데, 이 버그로 인해 일부 사용자가 너무 많은 요청을 보내면서 레이트 리밋(rate-limit)을 당하는 일이 발생했습니다.
1개의 좋아요

현재 사용 중인 Discourse 버전은 무엇인가요?

최근 유사한 버그가 보고되었는데, 이는 수정되었습니다.

3개의 좋아요