متابعةً للنقاش من السماح للأعضاء بإزالة العلامات / الفئات المقيدة من تفضيلات التتبع:
نظرة عامة
عندما يشاهد المستخدم موضوعًا قيد الحذف بنشاط، يؤدي التمرير المستمر (لأعلى أو لأسفل) إلى حلقة لا نهائية من استدعاءات واجهة برمجة التطبيقات posts.json. تُرجع هذه الاستدعاءات باستمرار خطأ 403 Forbidden، ومع ذلك يفشل التطبيق في الاعتراف بالحذف أو التوقف عن محاولة تحميل محتوى غير موجود، مما يؤدي إلى نشاط شبكة مستمر في الخلفية وتجربة مستخدم معطلة.
خطوات التكرار
- الإعداد (مستخدم مسؤول / مشرف):
- قم بتسجيل الدخول كمستخدم لديه صلاحيات حذف الموضوع (مثل المسؤول أو المشرف).
- قم بإنشاء موضوع جديد مع بعض المشاركات للتأكد من وجود محتوى للتمرير.
- احتفظ بعنوان URL لصفحة هذا الموضوع في متناول اليد.
- تجربة المستخدم (مستخدم عادي):
- قم بتسجيل الدخول كمستخدم عادي (بدون صلاحيات حذف).
- افتح علامة تبويب أو نافذة متصفح جديدة.
- انتقل إلى الموضوع الذي تم إنشاؤه في الخطوة 1.
- افتح أدوات المطور في متصفحك وانتقل إلى علامة التبويب “Network”. امسح أي طلبات موجودة للحصول على عرض نظيف.
- الحذف والتفاعل المتزامن:
- بينما يكون المستخدم العادي على صفحة الموضوع (من الخطوة 2)، استخدم حساب المسؤول / المشرف (من الخطوة 1) لحذف الموضوع.
- مباشرة بعد حذف الموضوع، يحاول المستخدم العادي التمرير لأعلى أو لأسفل في صفحة الموضوع المحذوف الآن.
- الملاحظة:
- في علامة التبويب “Network” في متصفح المستخدم العادي، لاحظ طلبات GET المستمرة التي يتم إرسالها إلى
https://discourse-url/t/xxxxx/posts.json?(حيثxxxxxهو معرف الموضوع المحذوف). - لاحظ أن جميع هذه الطلبات تُرجع باستمرار رمز حالة HTTP
403 Forbidden. - لا يعرض التطبيق أي رسالة تشير إلى حذف الموضوع، ولا يتوقف عن إرسال طلبات التمرير الفاشلة هذه.
- في علامة التبويب “Network” في متصفح المستخدم العادي، لاحظ طلبات GET المستمرة التي يتم إرسالها إلى
العواقب المحتملة
- في مجتمعي، نستخدم Cloudflare لمنع الهجمات السيبرانية، وقد تسببت هذه المشكلة في قيام بعض المستخدمين بإجراء عدد كبير جدًا من الطلبات وتم تقييدهم.