الوصول إلى الشبكة الخاصة: حماية موسّعة للعاملين على الويب وعمليات جلب التنقّل

Jonathan Hao
Jonathan Hao

ما المقصود بالوصول إلى الشبكة الخاصة؟

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

إجراءات الحماية الأساسية من خلال PNA (مع حالتها الحالية)

  • السياقات الآمنة: يُسمح فقط للسياقات الآمنة بتقديم طلبات موارد فرعية خاصة للشبكة (يتم فرضها بدءًا من الإصدار 94 من متصفّح Chrome). يمكنك الرجوع إلى مشاركة تعديل الوصول إلى الشبكة الخاصة لمعرفة التفاصيل.
  • طلبات ما قبل الإطلاق: يرسل Chrome طلبات ما قبل التنفيذ قبل طلبات الموارد الفرعية الخاصة للشبكة بهدف التحقّق من أذونات الخادم (تحذيرات في "أدوات مطوري البرامج" بشأن الأعطال منذ الإصدار 104 من Chrome سيتم فرضها في الإصدار 130 من Chrome). تم توضيح ذلك في قسم الوصول إلى الشبكة الخاصة: مقدمة عن الطلبات المسبقة. واعتبارًا من الإصدار 123 من Chrome، لن يحذف Chrome بعض عناوين بروتوكول CORS، مثل Accept في حال تم إنشاء الطلب المُسبَق وإرساله بسبب PNA فقط.
  • الإعفاءات من المصدر نفسه: منذ استخدام الإصدار 115 من Chrome، يتم إعفاء طلبات المصدر نفسه من المصادر التي يُحتمل أن تكون جديرة بالثقة من القيود التي تفرضها هذه الجهات.

حماية موسّعة: العاملين على الويب

سيتم توسيع نطاق حماية PNA لتشمل العاملين على الويب (العاملون المكرسون والعاملون المشاركون في العمل والعاملون في مجال الخدمات). يشمل ذلك ما يلي:

  • جلب النصوص البرمجية للموظفين: يتطلب هذا الإجراء سياقات آمنة وعمليات إرسال مبدئية آمنة لعناوين IP الأقل شيوعًا. صدرت تحذيرات بشأن إصدار Chrome 110 وسيتم فرضها في الإصدار 130 من متصفِّح Chrome.
  • عمليات الجلب التي تبدأها النصوص البرمجية للمشغِّلات: تتّبع جميع عمليات الجلب من داخل النصوص البرمجية للمشغِّلات قواعد PNA نفسها.

وبدءًا من الإصدار 124 من Chrome، يمكنك اختبار إجراء التنفيذ باتّباع الخطوات التالية:

  • إيقاف chrome://flags/#private-network-access-ignore-worker-errors
  • تفعيل chrome://flags/#private-network-access-respect-preflight-results

الحماية الموسّعة: عمليات استرجاع التنقّل

ينطبق إطار عمل PNA أيضًا على عمليات جلب التنقل (إطارات iframe والنوافذ المنبثقة) بسبب استخدامها المحتمل في هجمات CSRF. بدأ Chrome 123 في عرض تحذيرات بشأن حالات التعطُّل، مع التخطيط لإنفاذه في Chrome 130.

بدءًا من إصدار Chrome 124، يمكنك اختبار فرض التنفيذ عن طريق:

  • إيقاف chrome://flags/#private-network-access-ignore-navigation-errors
  • تفعيل chrome://flags/#private-network-access-respect-preflight-results

عندما يحظر PNA طلب التنقل، سيظهر للمستخدمين خطأ محدد مع خيار إعادة التحميل يدويًا والسماح بالطلب.

عندما يحظر PNA طلب التنقل، سيظهر للمستخدمين خطأ محدد مع خيار إعادة التحميل يدويًا والسماح بالطلب.
عندما يحظر PNA طلب تنقّل، سيظهر للمستخدمين خطأ محدّد مع خيار إعادة التحميل يدويًا والسماح بالطلب.

ما هي الإجراءات التي يجب اتّخاذها إذا كان موقعك الإلكتروني متأثرًا بهذا التغيير؟

تتضمّن مشاركة الوصول إلى الشبكة الخاصة: تقديم الطلبات المسبقة بعض الإرشادات. الأهم من ذلك، بالنسبة إلى طلبات التنقّل:

  • لا يمكن أن يكون Access-Control-Allow-Origin حرف بدل ("*").
  • يجب ضبط Access-Control-Allow-Credentials على "true".

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

  • WebSockets: بدءًا من Chrome 126، ستغطي شبكة PNA عمليات تأكيد اتصال WebSocket (التحذيرات أولاً).
  • التنفيذ الكامل: سيتم فرض جميع قيود PNA (حظر الطلبات غير المتوافقة مع السياسة) مبدئيًا في Chrome 130. سيتوفر لدى المستخدمين إعداد موقع لإلغاء PNA للمواقع الإلكترونية الموثوق بها.

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

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

صورة من تصوير جاكوب زيردسيكي على موقع UnLaunch