ما هو الوصول إلى الشبكة الخاصة؟
الوصول إلى الشبكة الخاصة (PNA، والمعروفة سابقًا باسم CORS-RFC1918 واختصار الوصول إلى الشبكة المحلية) هي ميزة أمان تحدّ من قدرة المواقع الإلكترونية على إرسال طلبات إلى خوادم على الشبكات الخاصة. يساعد ذلك في حماية المستخدمين والشبكات الداخلية من الهجمات المحتمَلة، مثل هجمات تقليد الطلبات من موقع إلكتروني مختلف (CSRF). يعمل Chrome على تنفيذ PNA تدريجيًا، وسيتم توسيع نطاق الحماية في الإصدارات القادمة.
إجراءات حماية PNA الرئيسية (مع حالتها الحالية)
- السياقات الآمنة: يُسمح فقط للسياقات الآمنة بإجراء طلبات الموارد الفرعية الخاصة بالشبكة (يتم فرضها اعتبارًا من الإصدار 94 من Chrome). يُرجى الرجوع إلى مقالتنا حول تحديث "الوصول إلى الشبكة الخاصة" للاطّلاع على التفاصيل.
- طلبات الاختبار المبدئي: يرسل Chrome طلبات الاختبار الأولي قبل طلبات الموارد الفرعية الخاصة بالشبكة للتحقق من أذونات الخادم (تحذيرات في "أدوات مطوري البرامج" بشأن الأخطاء التي حدثت منذ Chrome 104، والتي سيتم فرضها في Chrome 130). تم وصف ذلك في مقالة الوصول إلى الشبكة الخاصة: مقدّمة عن الطلبات الأولية. بدءًا من الإصدار 123 من Chrome، سيحذف Chrome بعض عناوين CORS، مثل
Accept
، في حال إنشاء الطلب المبدئي وإرساله بسبب PNA. - الإعفاءات من قيود الوصول من مصدر موثوق: منذ الإصدار 115 من Chrome، تم إعفاء طلبات الوصول من مصدر موثوق من قيود الوصول من مصدر غير موثوق.
الحماية الموسّعة: مهام تطبيقات الويب
وستشمل حماية PNA عاملي الويب (العاملون المخصّصون والعاملون المشترَكون وعاملو الخدمات). يشمل ذلك ما يلي:
- جلب نصوص عامل التشغيل: يتطلب هذا الإجراء السياقات الآمنة وعمليات التحقّق المُسبَق لعناوين IP الأقلّ استخدامًا. تحذيرات يعود تاريخها إلى الإصدار 110 من Chrome، وسيتم فرضها في الإصدار 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.
بدءًا من الإصدار 124 من Chrome، يمكنك اختبار إجراء التنفيذ عن طريق:
- إيقاف
chrome://flags/#private-network-access-ignore-navigation-errors
- تفعيل
chrome://flags/#private-network-access-respect-preflight-results
عندما تحظر PNA طلب تنقُّل، سيظهر للمستخدمين خطأ معيّن مع خيار إعادة تحميل الطلب يدويًا والسماح به.
ما هي الإجراءات التي يجب اتّخاذها إذا كان موقعك الإلكتروني متأثرًا بهذا التغيير؟
تتضمّن مقالة الوصول إلى الشبكة الخاصة: تقديم الطلبات الأولية إرشادات. في ما يلي ملاحظات مهمة بشأن طلبات التنقّل:
- لا يمكن أن يكون
Access-Control-Allow-Origin
حرف بدل ("*"
). - يجب ضبط
Access-Control-Allow-Credentials
على"true"
.
ما هي الخطوات التالية؟
- WebSockets: مبدئيًا، بدءًا من Chrome 126، ستغطي PNA عمليات تأكيد اتصال WebSocket (التحذيرات أولاً).
- التنفيذ الكامل: سيتم فرض جميع قيود PNA (حظر الطلبات غير المتوافقة) مؤقتًا في Chrome 130. سيكون لدى المستخدمين إعداد موقع إلكتروني لإلغاء ميزة "الوصول الموحّد للبريد الإلكتروني" للمواقع الإلكترونية الموثوق بها.
ملاحظات بشأن حالات استخدام الشبكة الخاصة
في حال استضافة موقع إلكتروني على شبكة خاصة ويحتاج إلى طلبات من شبكات عامة، يحتاج فريق Chrome إلى الحصول على ملاحظاتك. يُرجى الإبلاغ عن مشكلة في أداة تتبُّع مشاكل Chromium (المكوِّن: Blink>SecurityFeature>CORS>privateNetworkAccess).
صورة Jakub Żerdzicki على Unsplash