دسترسی به شبکه خصوصی چیست؟
دسترسی به شبکه خصوصی (PNA که قبلاً با نام CORS-RFC1918 و به طور خلاصه Local Network Access شناخته می شد) یک ویژگی امنیتی است که توانایی وب سایت ها را برای ارسال درخواست به سرورها در شبکه های خصوصی محدود می کند. این به محافظت از کاربران و شبکههای داخلی در برابر حملات احتمالی مانند جعل درخواست بین سایتی (CSRF) کمک میکند. کروم به تدریج PNA را پیاده سازی کرده است و حفاظت در نسخه های آینده گسترش خواهد یافت.
حفاظت های کلیدی PNA (با وضعیت فعلی آنها)
- زمینههای امن : فقط زمینههای امن مجاز به درخواستهای منابع فرعی شبکه خصوصی هستند (اجباری شده از Chrome 94). برای جزئیات به پست به روز رسانی دسترسی به شبکه خصوصی ما مراجعه کنید.
- درخواستهای Preflight : Chrome درخواستهای قبل از شروع پرواز را قبل از درخواستهای منابع فرعی شبکه خصوصی ارسال میکند تا مجوزهای سرور را بررسی کند (هشدارهای DevTools برای خرابی از Chrome 104، در Chrome 130 اعمال میشوند). این در دسترسی به شبکه خصوصی: معرفی پروازهای پیش از پرواز توضیح داده شد. از Chrome 123، Chrome برخی از سرصفحههای CORS مانند
Accept
حذف میکند، اگر پیش از پرواز فقط به دلیل PNA ایجاد و ارسال شود. - معافیتهای همان مبدأ : از Chrome 115، درخواستهای با مبدا یکسان از مبداهای بالقوه قابل اعتماد از محدودیتهای PNA مستثنی هستند.
حفاظت گسترده: کارگران وب
حفاظت PNA به کارگران وب (کارگران اختصاصی، کارگران مشترک و کارکنان خدمات) گسترش خواهد یافت. این شامل:
- واکشی اسکریپتهای کارگر : برای آدرسهای IP کمتر عمومی به زمینهها و پیش پروازهای امن نیاز دارد. اخطارهایی از Chrome 110 که در Chrome 130 اعمال می شود.
- واکشیهایی که توسط اسکریپتهای کارگر آغاز میشوند : همه واکشیها از داخل اسکریپتهای کارگر از قوانین PNA یکسانی پیروی میکنند.
با شروع Chrome 124، میتوانید با استفاده از مراحل زیر اجرای آن را آزمایش کنید:
- غیرفعال کردن
chrome://flags/#private-network-access-ignore-worker-errors
- فعال کردن
chrome://flags/#private-network-access-respect-preflight-results
حفاظت گسترده: واکشی ناوبری
PNA همچنین برای واکشی ناوبری (iframes، popups) به دلیل استفاده بالقوه آنها در حملات CSRF اعمال می شود. Chrome 123 شروع به نشان دادن هشدارهای مربوط به خرابی کرد، با برنامه ریزی برای اجرای Chrome 130.
با شروع Chrome 124، میتوانید اجرای این موارد را آزمایش کنید:
- غیرفعال کردن
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 اعمال میشوند. کاربران تنظیمات سایتی برای لغو PNA برای سایتهای مورد اعتماد خواهند داشت.
بازخورد برای موارد استفاده از شبکه خصوصی
اگر وبسایتی را در یک شبکه خصوصی میزبانی میکنید که به درخواستهای شبکههای عمومی نیاز دارد، تیم Chrome بازخورد شما را میخواهد! مشکل را در Chromium Issue Tracker ثبت کنید (جزء: Blink>SecurityFeature>CORS>PrivateNetworkAccess).
عکس Jakub Żerdzicki در Unsplash