يتضمّن Chrome 124 ميزة إذن الوصول إلى الشبكة الخاصة لتخفيف القيود المفروضة على المحتوى المختلط. هناك فترة تجريبية لإيقاف الميزة نهائيًا مستمرة للمواقع الإلكترونية التي تحتاج إلى مزيد من الوقت للاستعداد لهذا التغيير، ولكن تنتهي هذه الفترة التجريبية عند توفّر الإصدار 132 من Chrome، والمُتوقّع طرحه في 4 شباط (فبراير) 2025. توضّح هذه المشاركة التغيير، ويُرجى الاطّلاع على المزيد من المعلومات حول تصميم الميزة وكيفية نقل بيانات مواقعك الإلكترونية الحالية واختبار عملية التنفيذ.
التغيير المرتقَب
لإنشاء اتصالات بالأجهزة على شبكة خاصة لا تتضمّن
أسماء فريدة على مستوى العالم، وبالتالي لا يمكنها الحصول على شهادات بروتوكول أمان طبقة النقل، تقدّم هذه
الميزة خيارًا جديدًا لـ fetch()
للإعلان عن نية المطوّرين في
التواصل مع هذا الجهاز. ويشمل ذلك ميزة جديدة تخضع للسياسات من أجل التحكّم في
إمكانية وصول كل موقع إلكتروني إلى هذه الميزة، ورؤوس جديدة لردّ مرحلة ما قبل الطيران في الخادم بهدف تقديم بيانات وصفية إضافية.
ما هو الوصول إلى الشبكة الخاصة؟
الوصول إلى الشبكة الخاصة (PNA) هو ميزة أمان تحدّ من قدرة المواقع الإلكترونية على إرسال طلبات إلى الخوادم على الشبكات الخاصة. يساعد ذلك في حماية المستخدمين والشبكات الداخلية من الهجمات المحتمَلة، مثل هجمات تقليد الطلبات من موقع إلكتروني مختلف (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.