تاريخ النشر: 9 يونيو 2025
يضيف Chrome طلب إذن جديدًا للمواقع الإلكترونية التي تنشئ اتصالات بشبكة المستخدم المحلية كجزء من مواصفات الوصول إلى الشبكة المحلية. والهدف من ذلك هو حماية المستخدمين من هجمات تزوير الطلبات على مستوى المواقع الإلكترونية (CSRF) التي تستهدف أجهزة التوجيه والأجهزة الأخرى على الشبكات الخاصة، والحدّ من قدرة المواقع الإلكترونية على استخدام هذه الطلبات لتحديد بصمة الشبكة المحلية للمستخدم.
لفهم تأثير هذا التغيير في منظومة الويب، يبحث فريق Chrome عن ملاحظات من المطوّرين الذين ينشئون تطبيقات ويب تعتمد على إنشاء اتصالات بشبكة المستخدم المحلية أو بالبرامج التي تعمل محليًا على جهاز المستخدم. بدءًا من الإصدار 138 من Chrome، يمكنك الموافقة على هذه القيود الجديدة من خلال الانتقال إلى chrome://flags/#local-network-access-check
وضبط العلامة على "مفعَّلة (حظر)".
ما هي ميزة "الوصول إلى الشبكة المحلية"؟
يقيّد الوصول إلى الشبكة المحلية قدرة المواقع الإلكترونية على إرسال طلبات إلى الخوادم على الشبكة المحلية للمستخدم (بما في ذلك الخوادم التي تعمل محليًا على جهاز المستخدم)، ويتطلّب أن يمنح المستخدم الموقع الإلكتروني الإذن قبل إرسال هذه الطلبات. لا يمكن طلب هذا الإذن إلا في سياقات آمنة.

تتوفّر أذونات الوصول إلى الشبكة المحلية على العديد من الأنظمة الأساسية الأخرى، مثل Android وiOS وMacOS. على سبيل المثال، ربما منحت هذا الإذن لتطبيق Google Home بالوصول إلى الشبكة المحلية عند إعداد أجهزة Google TV وChromecast الجديدة.
ما هي أنواع الطلبات المتأثرة؟
في المرحلة الأولى من طرح ميزة "الوصول إلى الشبكة المحلية"، نعتبر "طلب الوصول إلى الشبكة المحلية" أي طلب من الشبكة العامة إلى شبكة محلية أو وجهة عنوان IP حلقي.
الشبكة المحلية هي أي وجهة يتم تحديدها على أنّها مساحة عنوان خاص
محدّدة في القسم 3 من RFC1918 في
IPv4 (على سبيل المثال، 192.168.0.0/16
)، أو عنوان IPv6 تم ربطه بعنوان IPv4 حيث يكون عنوان IPv4 المرتبط خاصًا، أو عنوان IPv6 خارج الشبكات الفرعية ::1/128
و2000::/3
وff00::/8
.
الاسترجاع هو أي وجهة يتم تحديدها على أنّها مساحة "الاسترجاع" (127.0.0.0/8
) المحدّدة في القسم 3.2.1.3 من RFC1122 في IPv4، أو مساحة "الرابط المحلي" (169.254.0.0/16
) المحدّدة في RFC3927 في IPv4، أو بادئة "العنوان المحلي الفريد" (fcc00::/7
) المحدّدة في القسم 3 من RFC4193 في IPv6، أو بادئة "الرابط المحلي" (fe80::/10
) المحدّدة في القسم 2.5.6 من RFC4291 في IPv6.
للاطّلاع على عملية ربط كاملة بين عناوين IP ومساحات العناوين، يُرجى الرجوع إلى الجدول في مواصفات الوصول إلى الشبكة المحلية.
الشبكة العامة هي أي وجهة أخرى.
بما أنّ إذن الوصول إلى الشبكة المحلية يقتصر على السياقات الآمنة، وبما أنّه قد يكون من الصعب نقل الأجهزة المتصلة بالشبكة المحلية إلى HTTPS، سيتم الآن إعفاء طلبات الشبكة المحلية التي تتطلّب إذنًا من عمليات التحقّق من المحتوى المختلط إذا علم Chrome أنّ الطلبات ستنتقل إلى الشبكة المحلية قبل تحديد الوجهة. يتعرّف Chrome على أنّ الطلب سيتم إرساله إلى الشبكة المحلية في الحالات التالية:
- اسم المضيف للطلب هو عنوان IP خاص (مثل
192.168.0.1
). - اسم المضيف للطلب هو نطاق
.local
. - يتمّ إضافة تعليق توضيحي إلى المكالمة
fetch()
باستخدام الخيارtargetAddressSpace: "local".
// Example 1: Private IP literal is exempt from mixed content.
fetch("http://192.168.0.1/ping");
// Example 2: `.local` domain is exempt from mixed content.
fetch("http://router.local/ping");
// Example 3: Public domain is not exempt from mixed content,
// even if it resolves to a local network address.
fetch("http://example.com/ping");
// Example 4: Adding the `targetAddressSpace` option flags that
// the request will go to the local network, and is thus exempt
// from mixed content.
fetch("http://example.com/ping", {
targetAddressSpace: "local",
});
التغييرات في Chrome
Chrome 138
يتوفّر الإصدار الأوّلي من ميزة "الوصول إلى الشبكة المحلية" الآن لاختباره بعد تفعيله في الإصدار 138 من Chrome. يمكن للمستخدمين تفعيل طلب الإذن الجديد من خلال ضبط
chrome://flags#local-network-access-check
على "مفعَّل (حظر)". يتيح ذلك عرض طلب الحصول على إذن الوصول إلى الشبكة المحلية عند إرسال طلبات باستخدام واجهة برمجة التطبيقات fetch()
في JavaScript، وتحميل الموارد الفرعية، والتنقّل في الإطارات الفرعية.
يتوفّر موقع إلكتروني تجريبي على https://lna-testing.notyetsecure.com/ لتفعيل أشكال مختلفة من طلبات الشبكة المحلية.
المشاكل والقيود المعروفة
- لا تزال اتصالات WebSockets (crbug.com/421156866) وWebTransport (crbug.com/421216834) وWebRTC (crbug.com/421223919) بالشبكة المحلية غير مشروطة بإذن الوصول إلى الشبكة المحلية.
- تتطلّب طلبات الوصول إلى الشبكة المحلية من Service Workers وShared Workers أن يكون مصدر العامل قد سبق أن تم منحه إذن الوصول إلى الشبكة المحلية.
- إذا كان تطبيقك يرسل طلبات إلى الشبكة المحلية من عامل خدمة، عليك إرسال طلب بشكل منفصل إلى الشبكة المحلية من تطبيقك من أجل عرض طلب الحصول على الإذن. (نحن نعمل على إيجاد طريقة تتيح للعمّال تشغيل طلب الحصول على الإذن إذا كان هناك مستند نشط متاح. يمكنك الاطّلاع على crbug.com/404887282).
الإصدار 139 من Chrome والإصدارات الأحدث
نحن نهدف إلى إطلاق ميزة "الوصول إلى الشبكة المحلية" في أقرب وقت ممكن. ندرك أنّ بعض المواقع الإلكترونية قد تحتاج إلى وقت إضافي لتعديلها وإضافة تعليقات توضيحية بشأن ميزة "الوصول إلى الشبكة المحلية"، لذا سنضيف "تجربة المصدر" للسماح للمواقع الإلكترونية بإيقاف ميزة "الوصول إلى الشبكة المحلية" مؤقتًا قبل أن نطرحها تلقائيًا. من المفترض أن يوفّر ذلك مسار نقل بيانات أكثر وضوحًا للمطوّرين، خاصةً إذا كنت تعتمد على الوصول إلى موارد الشبكة المحلية عبر HTTP (لأنّه سيتم حظر هذه الطلبات كمحتوى مختلط إذا تم إرسالها من صفحة HTTPS في المتصفّحات التي لا تتوافق بعد مع استثناء المحتوى المختلط في الشبكة المحلية).
سنضيف أيضًا سياسة Chrome للمؤسسات للتحكّم في المواقع الإلكترونية التي يمكنها إرسال طلبات إلى الشبكة المحلية وتلك التي لا يمكنها ذلك (من خلال منح الإذن مسبقًا أو رفضه مسبقًا لهذه المواقع الإلكترونية). سيسمح ذلك لعمليات تثبيت Chrome المُدارة، مثل تلك التي تتم في إعدادات الشركات، بتجنُّب عرض التحذير لحالات الاستخدام المعروفة المقصودة، أو بإجراء المزيد من عمليات الحظر ومنع المواقع الإلكترونية من طلب الإذن على الإطلاق.
نخطّط لمواصلة دمج إذن "الوصول إلى الشبكة المحلية" مع ميزات مختلفة يمكنها إرسال طلبات إلى الشبكة المحلية. على سبيل المثال، نخطّط لإتاحة ميزة "الوصول إلى الشبكة المحلية" لاتصالات WebSockets وWebTransport وWebRTC قريبًا.
سنشارك المزيد من المعلومات مع اقتراب موعد إطلاق ميزة "الوصول إلى الشبكة المحلية" بالكامل في Chrome.
نريد معرفة رأيك
كانت الملاحظات السابقة حول تطوير ميزة "الوصول إلى الشبكة الخاصة" مفيدة للغاية في توجيهنا إلى النهج الجديد بشأن إذن "الوصول إلى الشبكة المحلية". ونود أن نكرّر شكرنا لكل من شارك في هذا البرنامج على مدار السنوات.
إذا كنت مطوّرًا أو مستخدمًا لموقع إلكتروني يعتمد على إنشاء اتصالات بالشبكة المحلية للمستخدم أو بالبرامج التي تعمل محليًا على جهاز المستخدم، يهمّ فريق Chrome معرفة ملاحظاتك وحالات الاستخدام. يمكنك اتّخاذ إجراءَين للمساعدة:
- انتقِل إلى
chrome://flags#local-network-access-check
، واضبط العلامة على "مفعَّل (حظر)"، وتحقّق مما إذا كان موقعك الإلكتروني يعرض بشكل صحيح طلب الإذن الجديد (وهل يعمل على النحو المتوقّع بعد منح الإذن). - إذا واجهت أي مشاكل أو كانت لديك ملاحظات، يُرجى تسجيل مشكلة في أداة تتبُّع المشاكل في Chromium أو في مستودع GitHub الخاص بمواصفات LNA. يسرّنا معرفة رأيك في Chrome.