Defaults.Exposed

Defaults.Exposedתיקונים › כותרות בידוד cross-origin (COOP / CORP / COEP)

כיצד לתקן כותרות בידוד cross-origin (COOP / CORP / COEP)

שלוש הוראות דפדפן אופציונליות ששולטות כיצד אתרים אחרים מורשים לאינטראקציה עם שלך — פתיחתו בחלונות קופצים, הטמעת תמונות הסקריפטים שלו, או שיאוב המשאבים שלו לדפים שלהם. הן חיזוק מודרני, לא חובה בסיסית, ובניקוד שלנו הן אינפורמטיביות: היעדרן לא מוריד את הציון שלך. אבל השתיים הבטוחות סוגרות פרצת פישינג דרך חלונות קופצים ופרצת גניבת רוחב פס, ועין IT של קונה זהיר תשים לב לנוכחותן.

השורה התחתונה לעסק שלכם: שניים משלושה כותרות אלה עוצרות פישינג מתוחכם דרך חלונות קופצים ועוצרים אתרים אחרים מ-hotlinking של תמונות הסקריפטים שלך (שעולה לך ברוחב פס ועלול לדלף מידע). הן חינמיות, לוקחות ממפתח כ-15 דקות, ולא ישברו כלום. השלישית מתקדמת ויכולה לשבור אנליטיקה, גופנים ותוכן מוטמע — רוב העסקים צריכים להשאירה כבויה. אף אחת מהן לא משפיעה על הציון שלך, אז התייחס לשתיים הבטוחות כהשקעה, לא פאניקה: עשה אותן, דלג על הסיכונית אלא אם כן אתה ספציפית צריך אותה.

מה זה יכול לעלות לכם

מדוע זה חשוב. אלה הן כותרות חיזוק דפדפן מסתכלות-קדימה. במתודולוגיה שלנו כל שלושתן אינפורמטיביות — הן רשומות עם אפס נקודות ולעולם לא מזיזות את הציון שלך — כי הן בקרות מתקדמות שאתר יכול לגיטימית לפעול בלעדיהן, ואחת מהן עלולה להזיק אם מיושמת שלא כראוי. אנחנו מדווחים עליהן כדי שתוכל לראות היכן אתה עומד. השתיים הבטוחות (COOP ו-CORP) שוות הוספה: חינמיות, מהירות, וסוגרות פרצות פישינג גנוב ו-hotlinking אמיתיות ללא שבירת כלום.

מה אלה, בשפה פשוטה

כשמישהו מבקר באתר שלך, הדפדפן שלו לא רק טוען את הדפים שלך בבידוד — הוא גם מחליט כיצד אתרים אחרים מורשים לאינטראקציה עם שלך. האם אתר אחר יכול לפתוח את שלך בחלון קופץ ולהחזיק בו? האם אתר אחר יכול לחצות ולהטמיע את התמונות והסקריפטים שלך בדפים שלו? האם האתר שלך עצמו יכול להשתמש בבטחה בתכונות דפדפן מסוימות חזקות ונעולות?

שלוש כותרות אלה הן הוראות קצרות ובלתי נראות שהאתר שלך שולח לכל דפדפן מבקר כדי לענות בדיוק על שאלות אלה. הן ידועות בקיצוריהן:

שניים מהם (COOP ו-CORP) בטוחים להוספה ושימושיים באמת. השלישי (COEP) מתקדם ויכול לשבור דברים אם מופעל בלי הקפדה.

הדבר החשוב ביותר לדעת מראש: בניקוד שלנו, כל שלושתן אינפורמטיביות. הן לא משפיעות על הציון שלך. חסרה אחת לא עולה לך כלום. אנחנו מדווחים עליהן כדי שתוכל לראות היכן אתה עומד ולסדר את הניצחונות הקלים — לא כדי שתפנה לדאוג לגבי מספר.

מה זה יכול לעלות לך

אלה סיכונים מנישה, לא כותרות — אבל הם אמיתיים, והתיקונים חינמיים.

מה כל אחד בעצם הוא

COOP — Cross-Origin-Opener-Policy (בטוח, מומלץ)

כשאתר אחר פותח את שלך באמצעות חלון קופץ או window.open, שני החלונות יכולים בדרך כלל לשמור הפניה אחד לשני. קישור זה יכול להיות מנוצל: הפותח יכול לתפעל או להפנות את החלון שלך, לקרוא קטעים מה-URL שלו, ולשלב פישינג משכנע באמצעות הדומיין האמיתי שלך. COOP: same-origin שובר את היחסים הזה — החלון שלך הופך לבדוד מכל מה שפתח אותו ממקורות אחרים. גלישה רגילה, הקישורים הפנימיים שלך, וניווט רגיל אינם מושפעים לחלוטין.

מה נראה “טוב”: Cross-Origin-Opener-Policy: same-origin.

CORP — Cross-Origin-Resource-Policy (בטוח, מומלץ)

כברירת מחדל, התמונות, הסקריפטים, והקבצים האחרים שלך יכולים להיות מוטמעים ע”י כל אתר בכל מקום. CORP: same-origin אומר לדפדפנים לסרב להטמעה cross-origin של המשאבים שלך — כך שאתרים אחרים לא יכולים לעשות hotlink לנכסים שלך או למשוך אותם לדפים שלהם. האתר שלך עדיין טוען את המשאבים שלו בדיוק כמקודם; רק אתרים חיצוניים חסומים.

מה נראה “טוב”: Cross-Origin-Resource-Policy: same-origin. (אם אתה מפרסם בכוונה נכסים שאחרים יטמיעו — לוגו ציבורי, API פתוח — המפתח שלך יכול להרפות את זה על אותן תגובות ספציפיות.)

COEP — Cross-Origin-Embedder-Policy (מתקדם, השאר בדרך כלל כבוי)

COEP משלים “בידוד cross-origin”: בשילוב עם COOP, הוא דורש שכל משאב שהדף שלך טוען יביע הסכמה מפורשת (דרך CORS או CORP). כשנעשה נכון, זה מאפשר תכונות דפדפן מסוימות חזקות (כמו SharedArrayBuffer) ומוסיף שכבה נוספת נגד תקפות מסוג Spectre. אבל כיוון שהוא דורש הסכמה מכל מה שאתה טוען, הוא שובר בקלות כלים של גורמי שלישיים — אנליטיקה, גופנים, ווידג’טים מוטמעים — שלא נבנו לבטא הסכמה. רוב האתרים לא צריכים את התכונות שהוא מאפשר ולא צריכים לשאת את סיכון השבירה.

מה נראה “טוב”: לאתר הנדיר שצריך אותו, Cross-Origin-Embedder-Policy: credentialless — הערך הבטוח יותר, פחות סיכוי לשבור משאבים חיצוניים מ-require-corp. לכולם שאר, נעדר זה בסדר, והדוח שלנו לא יעניש עליו.

כיצד לתקן (חינם, ~15 דקות)

מסור זאת לאיש ה-IT שלך או למפתח האינטרנט — התיקון חינמי. הוספת COOP ו-CORP היא כמה הגדרות בשורה אחת על השרת שלך או CDN; אין רישיון ואין עלות שוטפת. ההוראה היחידה לבעל העסק היא: עשה את השניים הבטוחים, ואל תאפשר COEP ללא בדיקה.

אלה כותרות תגובה, שנקבעות היכן שתגובות האתר שלך מיוצרות — בקלות ביותר ב-CDN שלך (כמו Cloudflare) אם יש לך כזה, אחרת בתצורת שרת האינטרנט שלך.

שתי הכותרות הבטוחות (מומלצות לכולם)

Cloudflare — Rules → Transform Rules → Modify Response Headers → הגדר:

Nginx:

add_header Cross-Origin-Opener-Policy   "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;

Apache:

Header always set Cross-Origin-Opener-Policy   "same-origin"
Header always set Cross-Origin-Resource-Policy "same-origin"

אלה בטוחות להוספה ולא ישברו פונקציונליות רגילה. לאחר פריסה, טען מחדש כמה דפים ואשר שהאתר מתנהג בדיוק כמקודם (הוא צריך).

הכותרת המתקדמת (רק אם אתה ספציפית צריך אותה)

אל תפעיל זאת ללא בדיקה ב-staging תחילה. COEP עלולה לשבור אנליטיקה, גופנים וווידג’טים מוטמעים.

Cloudflare: Transform Rules → הגדר Cross-Origin-Embedder-Policy = credentialless.

Nginx:

add_header Cross-Origin-Embedder-Policy "credentialless" always;

השתמש ב-credentialless ולא ב-require-corp — פחות סיכוי לשבור משאבים חיצוניים. בדוק ביסודיות ב-staging; צפה לכל סקריפט, גופן, או תוכן מוטמע של גורם שלישי שמפסיקים לטעון. אם משהו נשבר ואתה לא באמת צריך את התכונות ש-COEP מאפשר, פשוט הסר את הכותרת — אין עונש על אי-קיומה.

הערות פלטפורמה

טעויות נפוצות

הערה על ציון

כדי להיות ברור לחלוטין: אף אחת משלוש הבדיקות הללו לא משפיעה על הציון שלך. הן רשומות במתודולוגיה שלנו כאינפורמטיביות, עם אפס נקודות, וחסרה אחת לעולם לא עולה לך כלום. אנחנו מציפים אותן כיוון שהשניים הבטוחים הם שיפורים זולים ואמיתיים וכיוון שראיית התמונה המלאה שימושית — לא כיוון שיש מספר להגן. אם לא תעשה כלום כאן, הציון שלך זהה בדיוק. אם תוסיף COOP ו-CORP, סגרת כמה פרצות אמיתיות (אם גם מנישה) בחינם. זוהי הדרך הנכונה לחשוב על דף זה: לכה אופציונלית, עם מלכודת אחת עם תווית ברורה להימנע.

שאלות נפוצות

אלה לא משפיעות על הציון שלי — האם כדאי לבצע אותן בכלל?

שתיים מהן, כן; אחת, כנראה לא. COOP ו-CORP חינמיות, לוקחות דקות, ולא ישברו את האתר שלך — הן סוגרות נתיבי תקפה אמיתיים (אם גם מנישה), אז שוות ביצוע כהיגיינה זולה. COEP מתקדמת ויכולה לשבור כלים של גורמי שלישיים, כך שרוב העסקים צריכים להשאירה כבויה אלא אם כן הם ספציפית צריכים את תכונות הדפדפן שהיא מאפשרת. אף אחת מהשלוש לא משנה את הציון שלך כך או כך, אז אין דחיפות — התייחס לשתיים הבטוחות כסדר ביתי בפעם הבאה שהמפתח שלך בתוך האתר.

אני לא טכני — האם זה משהו שאני חייב לפעול לפיו?

לא אישית, ולא בדחיפות. כיוון שאלה אינפורמטיביות, שום דבר רע לא קורה לציון שלך אם תדלג. אם תרצה להוסיף את השתיים הבטוחות, מסור את חלק 'כיצד לתקן' למי שמנהל את האתר שלך או CDN — זה כמה הגדרות בשורה אחת והתיקון חינמי. הדבר היחיד לסמן במפורש הוא COEP: אמור להם לא להפעיל אותה ללא בדיקה, כי היא יכולה לשבור אנליטיקה וווידג'טים מוטמעים.

מה ההבדל בין אלה לכותרות שמשפיעות על הציון שלי?

כותרות אבטחת האינטרנט המנוקדות — הפניית HTTPS, HSTS, Content-Security-Policy, הגנת clickjacking (X-Frame-Options), והגנת MIME-sniffing — מגנות מפני תקפות נפוצות ומנוצלות רחבות, כך שהיעדרן עולה נקודות. שלושת כותרות האינטרנט בדף זה (COOP, CORP, COEP) הן בקרות בידוד דפדפן חדשות יותר ומתמחות יותר. הן שיטת עבודה טובה אבל לא ציפייה בסיסית עדיין, כך שאנחנו מדווחים עליהן ללא ניקוד. עשה קודם את המנוקדות; אלה הן לכה על גביהן.

האם הוספת COOP או CORP תשבור את האתר שלי או את אינטגרציות השותפים שלי?

ההגדרות המומלצות (שתיהן 'same-origin') נועדו להיות בטוחות. COOP רק חותכת את הקישור לחלונות שהאתר שלך פותח בחלונות קופצים — גלישה רגילה, הדפים שלך, וקישורים רגילים אינם מושפעים. CORP עוצרת רק *אתרים אחרים* מהטמעת התמונות והסקריפטים שלך; האתר שלך טוען את המשאבים שלו בדיוק כמקודם. אם אתה משרת בפועל נכסים (כמו לוגו ציבורי או API) שאתרים אחרים אמורים להטמיע, המפתח שלך יכול להשתמש בהגדרה מתירנית יותר על אותן תגובות ספציפיות. האחת שגורמת באמת לסכנת שבירה היא COEP — השאר אותה כבויה אלא אם כן נבדקה.

'Hotlinking' עולה לי כמה, בפועל?

כשאתר אחר מטמיע את התמונה או הסקריפט שלך ישירות מהשרת שלך במקום לארח עותק משלו, כל מבקר בדף שלו מוריד אותו ממך — על חשבון רוחב הפס שלך, ועם הנכס שלך מופיע בהקשר שלא אישרת. לעסק קטן זה נדיר שקטסטרופלי, אבל זה כסף חינם שיוצא בדלת, ו-CORP ('same-origin') עוצר זאת ברמת הדפדפן. הוא גם סוגר נתיב דליפת מידע עדין שתקפות דפדפן מתקדמות (מסוג Spectre) מסתמכות עליו.

מה נראה 'טוב' לכל אחד מאלה?

COOP: כותרת Cross-Origin-Opener-Policy שמוגדרת ל-'same-origin'. CORP: כותרת Cross-Origin-Resource-Policy שמוגדרת ל-'same-origin'. COEP: כותרת Cross-Origin-Embedder-Policy — ואם תגדיר אותה בכלל, 'credentialless' הוא הערך הבטוח יותר מ-'require-corp'. הדוח שלנו פשוט מציין האם כל אחת קיימת ומה היא מוגדרת; הוא אף פעם לא מעניש על חסרה. שאף ל-COOP ו-CORP קיימים; השאר את COEP נעדרת אלא אם כן בדקת אותה.