XSS מוסבר — כשאתר מריץ קוד של תוקף בדפדפן שלכם
צוות CyberHub · לפני 14 ימים · 1 דק׳ קריאה
TL;DR · בקצרה
XSS (Cross-Site Scripting) היא חולשה שבה תוקף מזריק קוד JavaScript לאתר, והקוד רץ אצל משתמשים אחרים. נסביר את הסוגים ואיך מתגוננים.
💼 למי שעובד במקצוע
מפתחים: הסתמכו על escaping אוטומטי של הפריימוורק (React/Angular), הימנעו מ-dangerouslySetInnerHTML, והגדירו CSP הדוק. אל תכניסו קלט משתמש ל-innerHTML ידנית לעולם.
אם SQL Injection היא הזרקה ל-DB, אז XSS היא הזרקה ל-דפדפן. התוקף מצליח להכניס קוד JavaScript לעמוד, והוא רץ אצל כל מי שצופה בו.
דוגמה פשוטה
נניח אתר תגובות שמציג כל מה שכתבתם. אם כתבתי בתגובה:
<script>alert('נפרצת!')</script>ואין הגנה — הקוד ירוץ אצל כל מי שיקרא את התגובה. תוקף אמיתי יגנוב cookies, ינתב לאתר זדוני, או יבצע פעולות בשם המשתמש.
סוגים עיקריים
- Stored XSS — הקוד נשמר ב-DB (כמו בדוגמה) ופוגע בכל הצופים.
- Reflected XSS — הקוד מגיע דרך פרמטר ב-URL ומשתקף בעמוד.
- DOM-based XSS — הקוד רץ דרך מניפולציה על ה-DOM בצד הלקוח.
איך מתגוננים
- Escaping / Encoding — להציג קלט משתמש כטקסט, לא כ-HTML. רוב הפריימוורקים המודרניים (כמו React שאנחנו משתמשים בו) עושים את זה אוטומטית.
- CSP (Content-Security-Policy) — כותרת שמגבילה איזה קוד מותר להריץ. (הוספנו אחת לאתר הזה!)
- אף פעם לא לסמוך על קלט משתמש — לא בתצוגה ולא בלוגיקה.
📚 מקורות והפניות
💬 תגובות (0)
התחברו כדי להגיב.
אין עדיין תגובות. היו הראשונים! 🙂
🔴 עוד התקפה
SQL Injection מוסבר בפשטות
SQL Injection היא אחת החולשות הוותיקות והמסוכנות ב-web: התוקף 'מזריק' פקודות לבסיס הנתונים דרך שדה תמים. נסביר איך זה עובד ואיך מתגוננים.
Brute Force ו-Credential Stuffing — ניחוש סיסמאות בקנה מידה
תוקפים מנסים אינסוף סיסמאות (brute force) או משתמשים בסיסמאות שדלפו מאתרים אחרים (credential stuffing). נסביר ואיך עוצרים.
Man-in-the-Middle — כשמישהו מקשיב באמצע
מתקפת MITM היא כשתוקף מתמקם בין שני צדדים ומיירט/משנה את התקשורת. נפוצה ברשתות Wi-Fi ציבוריות. נסביר ואיך מתגוננים.