دسترسی به شبکه خصوصی: حفاظت گسترده برای کارگران وب و واکشی ناوبری

جاناتان هائو
Jonathan Hao

دسترسی به شبکه خصوصی چیست؟

دسترسی به شبکه خصوصی (PNA که قبلاً با نام CORS-RFC1918 و به طور خلاصه Local Network Access شناخته می شد) یک ویژگی امنیتی است که توانایی وب سایت ها را برای ارسال درخواست به سرورها در شبکه های خصوصی محدود می کند. این به محافظت از کاربران و شبکه‌های داخلی در برابر حملات احتمالی مانند جعل درخواست بین سایتی (CSRF) کمک می‌کند. کروم به تدریج PNA را پیاده سازی کرده است و حفاظت در نسخه های آینده گسترش خواهد یافت.

حفاظت های کلیدی 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 یک درخواست ناوبری را مسدود می کند، کاربران یک خطای خاص را با گزینه بارگیری مجدد دستی و اجازه درخواست مشاهده خواهند کرد.

هنگامی که PNA یک درخواست ناوبری را مسدود می کند، کاربران یک خطای خاص را با گزینه بارگیری مجدد دستی و اجازه درخواست مشاهده خواهند کرد.
هنگامی که 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