تخطي إلى المحتوى الرئيسي

ArtinTech Solution

Fixing an Intermittent 403 Error Caused by Cache TTL

الخطأ المتقطع هو الأصعب تشخيصًا، لأنه يفشل في أبسط خطوات التصحيح: إعادة إنتاجه عند الطلب. كان زر «إزالة العنصر» في درج السلة بأحد المتاجر يفشل بخطأ 403 Forbidden لبعض الزوار، في بعض الأوقات، دون أي شيء مفيد في سجل أخطاء PHP يدل على السبب.

قراءة بصمة الفشل

كان جسم استجابة طلب AJAX مجرد -1 مع حالة HTTP 403. هذه التركيبة تحديدًا هي بصمة WordPress لفشل استدعاء check_ajax_referer()، أي فحص رمز nonce الأمني الذي يجريه كل معالج AJAX مبني بشكل سليم قبل أي شيء آخر. الرمز الذي كانت ترسله الصفحة لم يكن يطابق ما يتوقعه الخادم ببساطة.

لماذا قد يفشل رمز nonce صالح أصلًا

رموز nonce في WordPress ليست دائمة: فهي تُولَّد مع كل تحميل للصفحة وتنتهي صلاحيتها بعد نحو 24 إلى 48 ساعة، مرتبطة بنافذة زمنية متحركة لا بقيمة ثابتة. لكن التخزين المؤقت الكامل للصفحات من LiteSpeed في الموقع كان مضبوطًا على مدة 7 أيام، ما يعني أن صفحة مخزنة يمكن تقديمها كما هي لكل الزوار لمدة تصل إلى أسبوع كامل بعد إنشائها.

أي صفحة ما زالت تُقدَّم من التخزين المؤقت بعد نحو يومين من تخزينها كانت توزع رمز nonce منتهي الصلاحية بحلول وقت محاولة زائر حقيقي استخدامه، لا بسبب أي خلل في جلسة ذلك الزائر، بل لأن HTML نفسه كان قديمًا قياسًا إلى الساعة الأمنية في WordPress.

الإصلاح، ولماذا هو إصلاح حقيقي لا حل التفافي

خفض مدة التخزين المؤقت للصفحات إلى 6 ساعات، أي أقل بكثير من الحد الأدنى لعمر nonce في WordPress، حل المشكلة فورًا وبالكامل، لأنه يعالج عدم التطابق الفعلي بدلًا من تغطية العَرَض. كما أزلنا أثناء التحقيق واجهة سلة مكررة لا علاقة لها بالخطأ من صفحة الدفع، لأن مراجعة الطلب في صفحة الدفع كانت تعرض المعلومات نفسها.

أهم الدروس

  • جسم استجابة -1 مع HTTP 403 أشبه ببصمة لفشل فحص nonce في WordPress؛ ويستحق أن تتعرف عليه من النظرة الأولى.
  • مدة التخزين المؤقت الكامل للصفحات وعمر رموز الأمان في WordPress إعدادان يجب أن يتوافقا، ولا شيء يفرض ذلك افتراضيًا.
  • الخطأ المتقطع الذي يبدو عشوائيًا كثيرًا ما يكون عدم تطابق زمني بين نظامين يعمل كل منهما بشكل صحيح بمفرده.

اقرأ أيضًا: فرق ست ساعات في الطوابع الزمنية، ما الذي تشمله صيانة المواقع فعلًا.

هل تواجه قيدًا مشابهًا في لوحة إدارة WooCommerce أو WordPress لديك؟ لنتحدث؛ فـ ArtinTech Solution تبني هذا النوع تحديدًا من أدوات المتاجر المخصصة.

Share this article

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *