ستنتهي الفترة التجريبية لإيقاف ميزة الوصول إلى الشبكة الخاصة (PNA) للسياقات غير الآمنة، لذا يجب تنفيذ طلب إذن PNA

Yifan Luo
Yifan Luo

يتضمّن Chrome 124 ميزة إذن الوصول إلى الشبكة الخاصة لتخفيف القيود المفروضة على المحتوى المختلط . تتوفّر ميزة تجريبية للإيقاف النهائي مستمرة للمواقع الإلكترونية التي تحتاج إلى مزيد من الوقت للاستعداد لهذا التغيير. ومع ذلك، تنتهي هذه الفترة التجريبية مع الإصدار 132 من Chrome ومن المتوقّع أن يتم شحنها في 4 شباط (فبراير) 2025. توضّح هذه المشاركة التغيير، ويُرجى الاطّلاع على المزيد من المعلومات حول تصميم الميزة وكيفية نقل بيانات مواقعك الإلكترونية الحالية واختبار عملية التنفيذ.

التغيير المرتقَب

لإنشاء اتصالات بالأجهزة على شبكة خاصة لا تتضمّن أسماء فريدة على مستوى العالم، وبالتالي لا يمكنها الحصول على شهادات بروتوكول أمان طبقة النقل، تقدّم هذه الميزة خيارًا جديدًا لـ fetch() للإعلان عن نية المطوّرين في التواصل مع هذا الجهاز. ويشمل ذلك ميزة جديدة تخضع للسياسات من أجل التحكّم في إمكانية وصول كل موقع إلكتروني إلى هذه الميزة، ورؤوس جديدة لردّ مرحلة ما قبل الطيران في الخادم بهدف تقديم بيانات وصفية إضافية.

ما هو "الوصول إلى الشبكة الخاصة"؟

الوصول إلى الشبكة الخاصة (PNA) هو ميزة أمان تحدّ من قدرة المواقع الإلكترونية على إرسال طلبات إلى الخوادم على الشبكات الخاصة. كانت هذه الميزة تُعرف سابقًا باسم CORS-RFC1918 ومختصرًا باسم الوصول إلى الشبكة المحلية. يساعد ذلك في حماية المستخدمين والشبكات الداخلية من الهجمات المحتمَلة، مثل هجمات تقليد الطلبات من موقع إلكتروني مختلف (CSRF). يعمل Chrome على تنفيذ ميزة "التصفح بدون إنترنت" تدريجيًا، وسيكون بإمكان المزيد من المستخدمين الاستفادة من هذه الميزة في الإصدارات القادمة.

لماذا يجب طلب الإذن؟

طرح الإصدار 94 من Chrome حظرًا على الوصول إلى الشبكة الخاصة من المواقع الإلكترونية العامة غير الآمنة. كشفت المحاولة الجارية لإزالة ميزة "الوصول إلى الشبكة الخاصة" من السياقات غير الآمنة عن تحديات في نقل بيانات المواقع الإلكترونية المتأثرة إلى HTTPS. يتمثل أحد المخاطِر الشائعة في صعوبة نقل بيانات الأجهزة الخاصة إلى HTTPS، ما يؤدي إلى مخالفات في فحص المحتوى المختلط.

لحلّ هذه المشكلة، تمت إضافة طلب إذن جديد في مرحلة تجربة وتقييم من الإصدار 120 من Chrome، وفي الإصدار الثابت من الإصدار 124 من Chrome.

متى تكون رسالة طلب الإذن مطلوبة؟

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

في ما يلي سير العمل المعتاد لطلب الوصول إلى شبكة خاصة مع طلب الحصول على الإذن:

بدء طلب الإذن

أضِف سمة targetAddressSpace الجديدة كخيار استرجاع، ثم يمكن للطلب تخطّي عملية التحقّق من المحتوى المختلط.

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

وفقًا لتعليمات الوصول إلى الشبكة الخاصة: تقديم عمليات الطلب المبدئية، يسبق أي طلب للشبكة الخاصة طلب طلب تجريبي. سيتضمن طلب التنفيذ المبدئي هذا عنوانًا جديدًا، وهو Access-Control-Request-Private-Network: true، ويجب أن يتضمّن الردّ المقابل العنوان Access-Control-Allow-Private-Network: true.

لاستيعاب طلب الإذن الجديد، يجب أن تتضمّن الأجهزة عنوانَي ردّ جديدَين: Private-Network-Access-Name وPrivate-Network-Access-ID.

  • Private-Network-Access-ID: قيمة 48 بت معروضة على شكل 6 بايت سداسية عشرية مفصولة بنقطتَين رأسيتَين
  • Private-Network-Access-Name: اسم صالح كسلسلة تطابق التعبير العادي ECMAScript /^[a-z0-9_-.]+$/. الحد الأقصى لطول الاسم هو 248 وحدة رمز UTF-8.
Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

عرض توضيحي

يمكنك الاطّلاع على العرض الترويجي على الرابط: https://private-network-access-permission-test.glitch.me/.

يجب تشغيل خادمك الشخصي لاستخدام الموقع الإلكتروني التجريبي. يجب أن يستجيب الخادم الخاص برأس HTTP Access-Control-Allow-Private-Network: true، بالإضافة إلى الرؤوس Private-Network-Access-ID وPrivate-Network-Access-Name المحدّدة للخادم. في حال ضبط كل الإعدادات بشكل صحيح، من المفترض أن يظهر لك طلب الأذونات التالي:

إنهاء الفترة التجريبية لإيقاف السياق غير الآمن

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

بعد تعديل الرمز، احذف الرمز المميّز للإصدار التجريبي في علامات HTML أو JavaScript أو عناوين HTTP. إذا لم تتذكر مكان وضع الرمز المميّز للإصدار التجريبي، يُرجى الرجوع إلى القسم "التسجيل في الفترة التجريبية لاستخدام الإصدار القديم" في مشاركة المدوّنة السابقة.

يمكنك أيضًا حذف الرمز المميّز في صفحة الفترة التجريبية.

ما هي الخطوات التالية؟

لا يزال الحلّ لطلبات البيانات من fetch() غير واجهة برمجة التطبيقات قيد الاستكشاف.

تم اختبار العديد من الحلول، مثل استخدام مهام الخدمة أو جعل مساحة العناوين المستهدفة كسياسة جديدة لأمان المحتوى. ومع ذلك، لا يزال الشكل النهائي للطلبات الواردة من fetch() غير واجهة برمجة التطبيقات قيد التحقيق.

قد تصبح الطلبات الواردة من الإطارات الفرعية متاحة مع سياسة الأذونات في المستقبل.

في المستقبل، قد نسمح باستخدام سياسات الأذونات لتخفيف القيود المفروضة على استخدام الإطارات الفرعية.

ملاحظات حول حالات استخدام الشبكة الخاصة

إذا كنت تستضيف موقع ويب على شبكة خاصة ويحتاج إلى طلبات من شبكات عامة، فإن فريق Chrome يريد الحصول على ملاحظاتك! يمكنك الإبلاغ عن مشكلة في نظام تتبُّع المشاكل في Chromium (المكوّن: Blink>SecurityFeature>CORS>PrivateNetworkAccess) أو في مستودع GitHub.

الموارد