פגיעות XSS והאם אפשר למנוע אותה
Xss זו פגיעות בה התוקף משתמש בjavascript כדי להשיג נתונים/מידע/הרשאות ל/על תכנים מסויימים, למשל לגנוב עוגיות של מנהל אתר, וע"י כך להתחזות לו ולהרוויח באמצעות זה הרשאות שלא היו אמורות להיות לו. השאלה שנשאלת היא האם יש דרך למנוע או למזער כנעט לחלוטין את הפגיעות הזאת? כשבניתי אתר, בדקתי עבור על קלט, כל qs, וכל עוגיה שאין בהם את המילה javascript, ואני יודעת שלפחות בתקופה שבניתי את האתר הדרך הזאת נחשבה למקובלת. הבעיה היא שלא תמיד כשמישהו כותב את המילה הזאת, javascript, הוא בהכרח מנסה לעשות בעיות אבטחה. (false positive). (אולי הוא רוצה לדבר על אבטחה, ועל נושא הפגיעות הזה?) (אגב, זה מה שקרה לי בבלוג שלי...) בכל מקרה, נודע לי שאין דרך למנוע לחלוטין את הפגיעות הזאת. אם כן, האם מישהו יכול לתת דוגמא למצב שבו אי אפשר למנוע את הנזק לחלוטין? האם לא כל הפעמים שכותבים ג'אווה סקריפט בהכרח מכילים את רצף המילים המחובר javascript? בהעיה נוספת היא שהמילה javascript יכולה להימצא כתובה בכמה אופנים, למשל: JaVAScRIpT. כמובן שגם לזה יש פתרון, פשוט הופכים את כל האותיות לאותיות קטנות לפני ביצוע ההשוואה:
Xss זו פגיעות בה התוקף משתמש בjavascript כדי להשיג נתונים/מידע/הרשאות ל/על תכנים מסויימים, למשל לגנוב עוגיות של מנהל אתר, וע"י כך להתחזות לו ולהרוויח באמצעות זה הרשאות שלא היו אמורות להיות לו. השאלה שנשאלת היא האם יש דרך למנוע או למזער כנעט לחלוטין את הפגיעות הזאת? כשבניתי אתר, בדקתי עבור על קלט, כל qs, וכל עוגיה שאין בהם את המילה javascript, ואני יודעת שלפחות בתקופה שבניתי את האתר הדרך הזאת נחשבה למקובלת. הבעיה היא שלא תמיד כשמישהו כותב את המילה הזאת, javascript, הוא בהכרח מנסה לעשות בעיות אבטחה. (false positive). (אולי הוא רוצה לדבר על אבטחה, ועל נושא הפגיעות הזה?) (אגב, זה מה שקרה לי בבלוג שלי...) בכל מקרה, נודע לי שאין דרך למנוע לחלוטין את הפגיעות הזאת. אם כן, האם מישהו יכול לתת דוגמא למצב שבו אי אפשר למנוע את הנזק לחלוטין? האם לא כל הפעמים שכותבים ג'אווה סקריפט בהכרח מכילים את רצף המילים המחובר javascript? בהעיה נוספת היא שהמילה javascript יכולה להימצא כתובה בכמה אופנים, למשל: JaVAScRIpT. כמובן שגם לזה יש פתרון, פשוט הופכים את כל האותיות לאותיות קטנות לפני ביצוע ההשוואה:
string str = "JaVAScRIpT"; str.toLower(); if (str.equals("javascript")) ....