محاذاة الموقتات مع قيود العزل من مصادر متعددة

قبل الإصدار 91، كانت درجات دقة الموقّت في Chrome تقتصر على 5 ميكرو ثانية على الكمبيوتر المكتبي، حيث تكون ميزة عزل المواقع الإلكترونية مفعَّلة، و100 ميكرو ثانية على نظام التشغيل Android، في الحالات الأخرى غير ذلك.

بدءًا من الإصدار 91، وبعد تغيير المواصفات، سيحظر Chrome درجة دقة الموقّتات الصريحة (performance.now() وperformance.timeOrigin وواجهات برمجة تطبيقات الأداء الأخرى التي تعرض DOMHighResTimestamps) على 100 ميكرو ثانية على جميع الأنظمة الأساسية. من خلال تفعيل العزل المشترك المصدر، يمكن للمواقع الإلكترونية تخفيف القيود المفروضة على المواقع الإلكترونية بمقدار 5 ميكرو ثانية بغض النظر عن نظام التشغيل.

يُعدّ اكتساب إمكانات أكثر فعالية من خلال تفعيل ميزة العزل المشترك المصدر نهجًا مشابهًا تم طرحه على SharedArrayBuffer. حظر الوصول من نطاقات أخرى هو حالة يتم فيها عزل صفحة الويب عن المصادر الأخرى باستثناء المصادر التي تم فيها الموافقة.

هل أحتاج إلى اتخاذ إجراء بشأنها؟

على الأرجح أنّ هذه المطالبات لن تسبّب لك أي مشكلة. تم تقييد performance.now() بدرجات دقة أعلى بكثير في المتصفحات الأخرى (على سبيل المثال، 1 ميلي ثانية = 0.001 ثانية)، لذا، لم يكن من المفترض أن تعتمد على درجة الدقة الحالية على أي حال.

في الوقت نفسه، إذا كنت تريد الاستفادة من درجة دقة أعلى للموقّتات، لإجراء قياسات أكثر دقة على سبيل المثال، عليك التأكّد من أنّ موقعك الإلكتروني يعزل المحتوى من نطاقات أخرى. سيوفر لك ذلك دقة أفضل في كل من Chrome والمتصفحات الأخرى المستندة إلى Chromium، وFirefox.

ما هي علاقة الموقتات بالعزل المشترك المصدر؟

قرّر مورّدو المتصفّح حصر الموقّتات بدرجات دقة أكثر تفصيلاً (بالإضافة إلى توفّر SharedArrayBuffers التي يمكن استخدامها كموقّتات ضمنية) عند اكتشاف Spectre. ويرجع ذلك إلى أن Spectre وهجمات التنفيذ المبنية على توقُّعات مشابهة تعتمدان على الموقّتات لقياس الوقت الذي تستغرقه عمليات معيّنة، ثم تخمين محتوى ذاكرة العملية.

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

توفّر ميزة عزل البيانات المشتركة المصدر الأساسي العادي للمتصفّحات لتشغيل الصفحات في بيئة معزولة، بحيث لا يتمكّنون من تحميل موارد غير راغبة من مصادر متعددة، وبالتالي لا يواجهون خطرًا على Spectre. من خلال ميزة العزل المشترك المصدر، يمكننا الآن السماح للصفحات بالوصول إلى الموقّتات العالية الدقة SharedArrayBuffer وواجهات برمجة التطبيقات الأخرى غير الآمنة لعرضها في العمليات التي يمكنها قراءة البيانات العشوائية المتعددة المصادر.

لمعرفة المزيد من المعلومات عن خلفية هذا التغيير، يمكنك الاطّلاع على المقالة أهمية "عزل المحتوى من نطاقات متعددة" للاستفادة من ميزات فعّالة.

صورة غلاف من إعداد ليندا بيريز يوهانسن على UnLaunch.