تجاوز إلى المحتوى الرئيسي
الإصدار: 1.x

HOST151: إعادة تشغيل مشتركة من التخزين المؤقت

ماذا يعني هذا​

تخزين مؤقت أمام المتجر يعيد تشغيل استجابات API الخاصة بشخص واحد للجميع.

تقدّم طبقة تخزين مؤقت استجابات REST API مخزَّنة دون التحقق ممّن يطلبها: أرسل التطبيق فحصين بمصادقتين مختلفتين فتلقّى إجابة الفحص الأول في المرتين. وفي متجر نشط يعني هذا أن أمين صندوق قد يرى بيانات آخر، لذا يُحظر الاتصال حتى يستثني التخزين المؤقت واجهة API الخاصة بالمتجر. وهذه مشكلة في طبقة الاستضافة — إذ يجيب WordPress نفسه دائمًا لكل مستخدم على حدة.

قبل إصدار هذا الخطأ، يعيد التطبيق المحاولة باستخدام مفتاح تخزين مؤقت فريد في كل طلب. عندما تثبت هذه المحاولة أن المفتاح يتجاوز التخزين المؤقت، يتصل التطبيق ويواصل إرسال المفتاح، لذا لا يظهر هذا الخطأ إلا عندما تعجز المحاولة أيضًا عن إثبات إمكانية الاتصال بأمان.

بياناتك​

قد تكون البيانات على هذا الجهاز في خطر — لا تمسح البيانات المحلية. وإذا استمرت المشكلة، فصدّر التشخيصات وتواصل مع دعم WCPOS.

استكشاف الأخطاء وإصلاحها​

  1. سبق أن أعاد التطبيق المحاولة باستخدام مفتاح تخزين مؤقت فريد في كل طلب، لكنه ظل عاجزًا عن إثبات إمكانية الاتصال بأمان، لذا يجب إصلاح التخزين المؤقت لدى المضيف.
  2. استثنِ مسارات REST API الخاصة بالمتجر (/wp-json/ و/?rest_route=) من التخزين المؤقت للصفحات — على LiteSpeed عطّل تخزين REST مؤقتًا أو أضف قاعدة عدم تخزين؛ وعلى WP Engine وسّع استثناء WooCommerce ليشمل /wp-json/wcpos؛ وعلى Sucuri اضبط مستوى التخزين المؤقت ليحترم Cache-Control.
  3. ترسل واجهة API الخاصة بالمتجر بالفعل Cache-Control: no-store وVary: Authorization — لكن طبقة التخزين المؤقت تتجاهلهما؛ فوجّه المضيف إلى هاتين الترويستين.
  4. بعد تغيير إعدادات التخزين المؤقت، أفرغ التخزين المؤقت قبل إعادة الاتصال.

التفاصيل​

الرمز
HOST151 (CACHE_SHARED_REPLAY)
درجة الخطورة
error
تاريخ الإضافة
WCPOS 1.10.0