מדריך: התגוננות מפני XSS – Cross Site Scripting – הזרקת קוד (חלק 1)

הערה: ראשי התיבות האמיתיים של Cross Site Scripting הם כמובן CSS, אבל נהוג לכנות את הנושא XSS מכיוון ש- CSS היא שפת עיצוב הגליונות המוכרת לנו.

רקע

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

Cross Site Scripting היא שם כולל לפרצות האבטחה שמנצלות את האמון שנותנים במשתמשים אתרים ומשתמשות בקוד זדוני כדי לגנוב סיסמאות ממשתמשים אחרים, כדי לגנוב את זהותם (גניבת עוגיות היא עסק נפוץ) וכו'. יש לציין שפרצות XSS נכתבות בשפות שהן צד-לקוח (ובראשן Javascript, שפת צד-לקוח קלילה ללימוד שמורצת בדפי אינטרנט פשוטים לגמרי ועם זאת חזקה מאוד בשימוש נכון), כך שהאשמים העיקריים בפרצות אלו הם אתר האינטרנט שהרשה את ההעלאה של הקוד והדפדפן, שפירש את הקוד, חשב שהוא לגיטימי והריץ אותו.

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

פתח דבר

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

2 תגובות ל “מדריך: התגוננות מפני XSS – Cross Site Scripting – הזרקת קוד (חלק 1)”

  1. […] בסדרת המאמרים על הזרקות קוד (כהמשך לחלק הראשון), ואזכיר שראשי התיבות XSS מתייחסות […]

  2. […] לא פחות, כדוגמאת הזרקת SQL כשמשתמשים במסדי נתונים ובSQL, הזרקות קוד כשאנחנו מאפשרים למשתמש להכניס קוד JavaScript ללא השגחה […]

הוסף תגובה