أصدر Google توضيحًا بشأن رسالة مربكة تم إرسالها من قِبل Google Search Console
تحاول Google شرح البريد الإلكتروني المحير في Search Console SharedArrayBuffer. قد يؤدي عدم فهم المشكلة وحلها إلى تعطل المواقع.
أصدر مركز البحث في Google توضيحًا بشأن رسالة مربكة تم إرسالها الأسبوع الماضي من قِبل Google Search Console بخصوص مشكلات SharedArrayBuffer. قامت Google أيضًا بتحديث دليلها للإرشاد.
ما هو SharedArrayBuffer؟
SharedArrayBuffer ، بعبارات بسيطة، هي أساليب عمل JavaScript وراء الكواليس التي تساعدهم على إنجاز مهامهم بطريقة فعالة.
وفقًا لوثائق عمال الويب Mozilla :
“يعد عمال الويب وسيلة بسيطة لمحتوى الويب لتشغيل البرامج النصية في سلاسل الرسائل في الخلفية.”
ووفقًا لصفحة مطور Mozilla أخرى:
“باستخدام SharedArrayBuffer ، يمكن لكل من العاملين على الانترنت، كتابة البيانات وقراءة البيانات من نفس مساحة الذاكرة.”
الذاكرة مهمة لأن JavaScript يعمل مع ذاكرة المتصفح وإذا لم تتعامل الصفحة بشكل جيد، فقد يؤدي ذلك إلى عواقب غير مقصودة مثل تضخم الذاكرة.
توضح صفحة مطور Mozilla كذلك:
“تمنحك Array Buffers طريقة للتعامل مع بعض بياناتك يدويًا، على الرغم من أنك تعمل في JavaScript ، والذي يحتوي على إدارة تلقائية للذاكرة.
… في تطبيق نموذجي، يتولى فرد واحد كل العمل – الموضوع الرئيسي.
… وفي ظل ظروف معينة، يمكن لـ ArrayBuffers تقليل حجم العمل الذي يتعين على الخيط الرئيسي القيام به “.
ويوضح أنه في بعض الأحيان لا يكفي تقسيم العمل وهذا هو المكان الذي يلعب فيه العاملون على الويب المذكورين أعلاه، ويشاركون نفس الجزء من الذاكرة.
لخص Martin Splitt من Google الأمر على هذا النحو في عام 2017 عندما كانت SharedArrayBuffers ميزة قادمة:
“جافا سكريبت عبارة عن نصوص برمجية ذات ترابط واحد وتعمل لفترة طويلة مما يجعل الصفحة غير مستجيبة
يسمح عمال الويب بتشغيل JavaScript في سلاسل منفصلة، والتواصل مع السلسلة الرئيسية باستخدام الرسائل.
الرسائل التي تنقل كمية كبيرة من البيانات في TypedArrays أو ArrayBuffers تتسبب في تكلفة ذاكرة كبيرة بسبب استنساخ البيانات
لماذا تلقيت رسالة SharedArrayBuffer
توضح مدونة Google Search Central أن سبب تلقي الناشرين للرسالة “الغامضة” كان بسبب شيء ما على صفحات الويب الخاصة بهم هو استخدام SharedArrayBuffers ، وهي خدعة ترميز لتسريع عمليات JavaScript.
وفقًا لجوجل:
“قد يكون الاستخدام بسبب أطر عمل أو مكتبات أو محتوى طرف ثالث مدرج في مواقع الويب الخاص بك.”
لماذا يعد SharedArrayBuffer (SAB) مشكلة؟
أصبحت SABs إشكالية بعد اكتشاف ثغرات Specter و Meltdown .
تؤثر هذه الثغرات الأمنية على جميع وحدات معالجة الكمبيوتر (CPUs) وتسمح للمهاجم بقراءة ما هو موجود في الذاكرة. يؤثر الهجوم على جميع أجهزة الكمبيوتر بما في ذلك أجهزة إنترنت الأشياء.
قام Chrome في البداية بتعليق استخدام SABs ولكنه أعاد السماح لهم بعد حل بديل عزل العمليات بشكل أساسي.
يغير Chrome و Firefox كيفية التعامل مع SharedArrayBuffers
كان سبب البريد الإلكتروني هو محاولة نشر الخبر حول كيفية تعامل Chrome مع SharedArrayBuffers ولمساعدة الناشرين على الانضمام إلى العمليات التي ستجعل مواقعهم وزوار مواقعهم أكثر أمانًا.
في أواخر مايو 2021، سيتم إصدار Chrome 91 بقيد جديد يوفر دفاعًا أكثر قوة ضد ثغرات Specter و Meltdown.
” المصدر المتقاطع ” هو إشارة إلى الموارد (مثل الصور وملفات CSS وجافا سكريبت) التي تنشأ خارج الموقع.
إذن ما يحدث مع Chrome 91 وما تطلبه Google هو وضع سياسات أمان على الموارد وإغلاق ما هو مسموح به وفقًا لسياسات Chrome (و Firefox) لحماية زوار الموقع والناشرين من ثغرات Specter.
يعد هذا أمرًا جيدًا لزوار الموقع ولكنه قد يكون سيئًا لناشري الموقع الذين يستخدمون كائنات SharedArrayBuffer دون عزل المصدر المشترك.
وفقًا لتوضيح Google (بالإشارة إلى إصدار Chrome 91):
“… تم توحيد العزل عبر الأصل كطريقة لتمكين كائن SharedArrayBuffer بأمان. بدءًا من الإصدار 91، المخطط إصداره في أواخر مايو 2021، سيقوم Chrome ببوابة كائن SharedArrayBuffer خلف عزل الأصل المتقاطع.
… بعد إصدار Chrome 91، لن يعمل كائن SharedArrayBuffer بدون عزل الأصل المشترك. “
ما عليك القيام به لإصلاح مشكلة SharedArrayBuffer
هناك نوعان من المهام التي يجب إنجازها.
- تحديد استخدام SAB على موقع الويب الخاص بك.
- إصلاح أو إزالة الوظيفة
تحديد استخدام SAB
توصي Google بهذه الخطوات لتحديد SharedArrayBuffers:
“لديك خياران:
استخدم Chrome DevTools وافحص الصفحات المهمة. (متقدم) استخدم Reporting API لإرسال تقارير الإهمال إلى نقطة نهاية التقارير. تعرف على كيفية اتباع الأساليب المذكورة أعلاه في تحديد مكان استخدام SharedArrayBuffer في موقعك على الويب “.
يقدم دليل Google للعزل عبر الأصل إرشادات حول استخدام Chrome Dev Tools لتحديد استخدام SharedArrayBuffers.
- “افتح Chrome DevTools على الصفحة التي تشك في أنها تستخدم SharedArrayBuffer.
- حدد لوحة Console.
- إذا كانت الصفحة تستخدم SharedArrayBuffer ، فستظهر الرسالة التالية: [Deprecation] سيتطلب SharedArrayBuffer عزل المصدر المتبادل اعتبارًا من M91 ، حوالي مايو 2021. راجع https://developer.chrome.com/blog/enables-shared-array-buffer/ للحصول على مزيد من التفاصيل. الحزمة المشتركة. js: 535
- يشير اسم الملف ورقم السطر في نهاية الرسالة (على سبيل المثال، common-bundle.js: 535) إلى المكان الذي يأتي منه SharedArrayBuffer. إذا كانت مكتبة تابعة لجهة خارجية، فاتصل بالمطور لإصلاح المشكلة. إذا تم تنفيذه كجزء من موقع الويب الخاص بك، فاتبع الدليل أدناه لتمكين عزل المصدر المشترك “.
الرابط: كيفية تمكين العزل عبر الأصل
هناك الكثير لتستوعبه
هذا كثير لتأخذ في الاعتبار لأن هناك قدرًا كبيرًا من المصطلحات التطويرية والمختصرات التي يجب حفظها.
يصعب فهم صفحات المطورين المختلفة لأنها تميل إلى تحديد مختصرات متعددة في بداية 2000 كلمة مقالة ثم تشير حصريًا إلى الاختصارات دون مزيد من التوضيح في جميع أنحاء المقالة، كما لو كان القارئ قادرًا على الاحتفاظ بسهولة بمعنى COEP أو التعاون.
المصدر: searchenginejournal
شاهد المزيد: