גרסת המקור לניסיון של בקשת הרשאת גישה לרשת פרטית: נתיב להעברת אתרים באמצעות HTTPS

Yifan Luo
Yifan Luo

רקע

בגרסת Chrome 94 נוספה חסימה על גישה לרשת פרטית מאתרים ציבוריים לא מאובטחים. במסגרת תקופת הניסיון המתמשכת בנושא גישה לרשת פרטית מהקשרים לא מאובטחים, נחשפו אתגרים בהעברת אתרים מושפעים אל HTTPS. בעיה נפוצה היא הקושי להעביר מכשירים פרטיים ל-HTTPS, ומוביל להפרות של בדיקות תוכן מעורבות.

כדי לטפל באתגר שהוזכר למעלה, בקשה להרשאה חדשה זמינה בגרסת מקור לניסיון מ-Chrome 120

בקשה להרשאה בתור האפשרות החדשה

הוספת המאפיין targetAddressSpace החדש כאפשרות אחזור תאפשר לבקשה לדלג על בדיקת התוכן המעורב.

דוגמה:

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

בהתאם לגישה לרשת פרטית: הוספת קדם-הפעלה, בקשת קדם-הפעלה תופיע לפני כל בקשה לרשת פרטית. בקשת קדם-ההפעלה הזו תכלול כותרת חדשה, Access-Control-Request-Private-Network: true, והתגובה המתאימה חייבת לכלול את הכותרת Access-Control-Allow-Private-Network: true.

כדי לתת מענה לבקשת ההרשאות החדשות, נדרשנו לשלב במכשירים שתי כותרות תגובה חדשות: Private-Network-Access-Name ו-Private-Network-Access-ID.

Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>

דוגמה:

Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

Private-Network-Access-ID: ערך של 48 ביט, שמוצג כ-6 בייטים הקסדצימליים, מופרדים בנקודתיים. Private-Network-Access-Name: שם חוקי כמחרוזת שתואמת לביטוי הרגולרי של ECMAScript /^[a-z0-9_-.]+$/. האורך המקסימלי של השם הוא 248 יחידות קוד UTF-8.

הדגמה (דמו)

אפשר לראות את ההדגמה בכתובת: https://private-network-access-permission-test.glitch.me/.

הרשמה לגרסת המקור לניסיון

כדי להבטיח שבקשת ההרשאה לגישה לרשת הפרטית עוזרת למפתחים לאמץ הגבלות הקשר מאובטח לגישה לרשת פרטית, אנחנו מוסיפים אותן כגרסת מקור לניסיון ב-Chrome בגרסאות 120 עד 122.

נרשמים לגרסת המקור לניסיון כדי לאפשר לאתר להשתמש בבקשת ההרשאה:

  1. בקשו אסימון למקור.
  2. אפשר להשתמש באסימון באחת מהדרכים הבאות:
    • ב-HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • ב-JavaScript: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • בכותרות ה-HTTP: text Origin-Trial: TOKEN_GOES_HERE

אם יש לכם משוב או הצעות לגבי התכונה הזו, תוכלו לדווח על בעיה במאגר של GitHub.

משאבים