الخلفية
طرح الإصدار 94 من Chrome حظرًا على الوصول إلى الشبكة الخاصة من المواقع الإلكترونية العامة غير الآمنة. كشفت التجربة الجارية لإيقاف ميزة "الوصول إلى الشبكة الخاصة" من السياقات غير الآمنة نهائيًا عن تحديات في نقل بيانات المواقع الإلكترونية المتأثرة إلى HTTPS. أحد المخاوف الشائعة هو صعوبة نقل بيانات الأجهزة الخاصة إلى بروتوكول HTTPS، ما يؤدي إلى حدوث انتهاكات مختلطة للتحقّق من المحتوى.
لمعالجة التحدي الذي سبق ذكره، يتوفّر طلب جديد للحصول على إذن ضمن فترة تجريبية للمصدر من Chrome 120.
طلب الإذن كخيار جديد
من خلال إضافة سمة 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-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>
مثال:
Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"
Private-Network-Access-ID
: قيمة 48 بت يتم عرضها على شكل 6 وحدات بايت سداسية عشرية مفصولة بنقطتين.
Private-Network-Access-Name
: اسم صالح كسلسلة تطابق التعبير العادي ECMAScript /^[a-z0-9_-.]+$/
. الحد الأقصى لطول الاسم هو 248 وحدة رمز UTF-8.
عرض توضيحي
يمكنك الاطّلاع على العرض التوضيحي على الرابط: https://private-network-access-permission-test.glitch.me/.
التسجيل في مرحلة التجربة والتقييم
لضمان أن تساعد رسالة طلب الحصول على إذن الوصول إلى الشبكة الخاصة المطوّرين على اعتماد قيود السياق الآمن للوصول إلى الشبكة الخاصة، سنوفّرها في Chrome من الإصدار 120 إلى الإصدار 122 كإصدار تجريبي في المصدر.
سجِّل في الفترة التجريبية للإصدار الأصلي لتفعيل موقعك الإلكتروني لاستخدام طلب الإذن:
- اطلب رمزًا مميّزًا لمصدرك.
- استخدِم الرمز المميّز بإحدى الطريقتَين التاليتَين:
- في ملف HTML:
html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
- في JavaScript:
js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
- في عناوين HTTP:
text Origin-Trial: TOKEN_GOES_HERE
- في ملف HTML:
إذا كانت لديك أي ملاحظات أو اقتراحات بشأن هذه الميزة، يُرجى الإبلاغ عن مشكلة في مستودع GitHub.