מהי גישה לרשת פרטית?
גישה לרשת פרטית (PNA, לשעבר CORS-RFC1918 ולעיתים קרובות 'גישה לרשת מקומית') היא תכונת אבטחה שמגבילה את היכולת של אתרים לשלוח בקשות לשרתים ברשתות פרטיות. כך אפשר להגן על משתמשים ורשתות פנימיות מפני התקפות פוטנציאליות, כמו התקפה של גניבת זהות משתמש – Cross-Site Request Forgery (CSRF). אנחנו מטמיעים את PNA ב-Chrome בהדרגה, וההגנה תתרחב בגרסאות הבאות.
אמצעי ההגנה על מפתחות PNA (עם הסטטוס הנוכחי שלהם)
- הקשרים מאובטחים: רק הקשרים מאובטחים יכולים לשלוח בקשות למשאבי משנה ברשת פרטית (האכיפה החלה ב-Chrome 94). פרטים נוספים זמינים בפוסט בנושא עדכון הגישה לרשת פרטית.
- בקשות לבדיקה מקדימה: Chrome שולח בקשות לבדיקה מקדימה לפני בקשות למשאבי משנה ברשת פרטית, כדי לבדוק את הרשאות השרת (אזהרות בכלי הפיתוח על כשלים מ-Chrome 104 ואילך, שייאכפו ב-Chrome 130). הנושא הזה תואר במאמר גישה לרשת פרטית: הצגת בדיקות מקדימות. החל מגרסה 123 של Chrome, Chrome יחרוג מחלק מכותרות ה-CORS, כמו
Accept
, אם בדיקת הקדם-הפעלה נוצרת ונשלחת רק בגלל PNA. - פטורים מבקשות מאותו מקור: החל מגרסה 115 של Chrome, בקשות מאותו מקור ממקורות שעשויים להיות מהימנים פטורות מההגבלות של PNA.
הגנה מורחבת: משימות אינטרנט
ההגנה על PNA תחול על Web Workers (workers ייעודיים, workers משותפים ו-Service Workers). למשל:
- אחזור סקריפטים של עובדים: נדרשים הקשרים מאובטחים ובדיקות מקדימות לכתובות IP פחות ציבוריות. אזהרות שמוצגות מאז Chrome 110, שיחולו ב-Chrome 130.
- אחזור (fetch) שמופעל על ידי סקריפטים של עובדים: כל האחזורים (fetch) מתוך סקריפטים של עובדים פועלים לפי אותם כללי PNA.
החל מגרסה 124 של Chrome, אפשר לבדוק את האכיפה באופן הבא:
- השבת את
chrome://flags/#private-network-access-ignore-worker-errors
- הפעלת
chrome://flags/#private-network-access-respect-preflight-results
הגנה מורחבת: אחזור נתוני ניווט
PNA חל גם על אחזור נתוני ניווט (iframe, חלונות קופצים) בגלל האפשרות שלהם לשמש בהתקפות CSRF. התחלנו להציג אזהרות על כשלים בגרסה 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: באופן זמני, החל מגרסה 126 של Chrome, PNA יכסה לחיצות יד של WebSocket (תחילה התראות).
- אכיפה מלאה: כל ההגבלות על PNA יאכפו (חסימת בקשות שלא עומדות בדרישות) באופן זמני ב-Chrome 130. למשתמשים תהיה הגדרת אתר שתבטל את PNA לאתרים מהימנים.
משוב לגבי תרחישי שימוש ברשת פרטית
אם אתם מארחים אתר ברשת פרטית שצריך בקשות מרשתות ציבוריות, צוות Chrome רוצה לקבל מכם משוב. דיווח על בעיה במעקב אחר בעיות ב-Chromium (רכיב: Blink>SecurityFeature>CORS>PrivateNetworkAccess).
תמונה של Jakub Żerdzicki ב-Unsplash