ידע מעשי של CyberFixCrew

אילו נתונים רואים סקריפטים באתר ואיך בודקים גבולות

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

מפו קוד נטען ותנאים ולא רק שמות ספקים

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

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

OWASP: ניהול JavaScript של צד שלישי

הקשר הרצה קובע יותר משם הקובץ

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

אופן שילוב וגבולות שצריך לבדוק
שילובשאלת גישהמה מאמתים
סקריפט בעמוד הראשיאילו נתוני DOM זמינים בהקשרקוד, תעבורה ותנאי הפעלה
Tag Managerמי יכול להוסיף קוד ויעדיםהרשאות פרסום והיסטוריית שינוי
data layerאילו ערכים נועדו להיאסףשהוא אינו מוצג כבידוד קוד
iframe נפרדאיזו הפרדה ותקשורת הוגדרומקור, sandbox והודעות לפי הצורך
שילוב שרתאיזה מידע יוצא מהשרתסכמה, יעדים והרשאות
קופה או טופסמה משתנה בזמן הקלדה ושליחהבדיקת ניסיון ללא מידע לקוחות

data layer הוא ממשק נתונים ולא ארגז חול

אפשר להגדיר בו מידע מצומצם שהעסק רוצה להעביר למדידה, אך קוד שרץ בעמוד אינו בהכרח מוגבל לקריאתו בלבד. OWASP מדגישה ש-data layer אינו sandbox. צריך לבחון גם הרשאות כלי תגיות, קוד מותאם ואופן הטעינה ולא להסיק מבנה משתנים כמנגנון אכיפה.

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

OWASP: ניהול JavaScript של צד שלישי

CSP ו-SRI עוזרים בשאלות שונות

CSP יכולה להגביל מקורות ואופני טעינה בהתאם למדיניות. SRI בודק התאמה של משאב לערך שלמות צפוי. אף אחד מהם אינו הוכחה שקוד שהותר אינו קורא מידע זמין בהקשר שלו. גם משאב שתוכנו תואם לערך שאושר יכול לבצע פעולה שלא מתאימה לצורך העסקי.

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

MDN: מדיניות CSP וגבולות ההפעלהMDN: בדיקת שלמות משאבים באמצעות SRI

דוגמה: אירוע תודה כלל כתובת דואר בכתובת העמוד

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

Google Analytics מזהירה ממידע מזהה בכתובות, בכותרות ובקלט שנשלח לשירות. זו דוגמה לדרישת מוצר, לא רשימה מלאה של כל חובות הפרטיות. היעדר מידע בפנייה אחת אינו שולל תנאי הפעלה אחר; מציינים אילו עמודים, פעולות ומצבים נבדקו.

Google Analytics: מניעת העברת מידע מזהה

סגרו בדיקה עם היקף, צורך ותוצאה שניתנת לחזרה

המסירה כוללת מקור קוד, בעלים, מידע נחוץ, יעדים והתנהגות שנצפתה בתנאים שנבדקו. לכל חריגה יש החלטה, אחראי וטריגר לבחינה לאחר שינוי ספק או קוד. אל תשלחו HAR מלא או צילום טופס עם מידע לקוח בערוץ פנייה רגיל; ראיות יכולות להכיל אסימונים ונתונים רגישים.

ב-CyberFixCrew אפשר לתאם סקירת אתר ותהליך מידע לפי השירותים הקיימים. הבדיקה אינה אישור שכל תנאי התנהגות של ספק נשלל. מסכמים מה נבדק, מה דורש גורם נוסף ואיך מאמתים צמצום בלי לפגוע בתהליך העסקי.

מקור מקצועי: OWASP: ניהול JavaScript של צד שלישימקור מקצועי: MDN: מדיניות CSP וגבולות ההפעלהמקור מקצועי: MDN: בדיקת שלמות משאבים באמצעות SRIמקור מקצועי: Google Analytics: מניעת העברת מידע מזהה

תשובות ברורות

שאלות שעולות בנושא

ספק יכול לקרוא כל מידע באתר בלי הגבלה?

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

data layer מצומצם מבטיח שסקריפט לא יקרא שדות אחרים?

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

אם SRI תקין אפשר לסיים את בדיקת הספק?

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

מתקדמים לפי הצורך

לא ברור איזה קוד נטען ולאן הוא מעביר מידע?

נמפה רכיבים, תנאי טעינה ויעדים ונגדיר בדיקה ותוכנית צמצום לפי היקף מוסכם.

לתיאום בדיקה ותוכנית טיפול