סייבר ואבטחת מידע · web-api-pt

Cross-Site Scripting: Stored, Reflected ו-DOM

מאת תאיר מלכא 7 דק׳ קריאהפורסם: 5 באוגוסט 2026
המחשה חזותית מקצועית בנושא בדיקת XSS בתחום Web ו-API PT
תשובה מהירה

בדיקת XSS נבדק רק במעבדה או במערכת מורשית. בודקים את Request/Response, התנהגות השרת, Roles, State והשפעה, תוך שימוש בבדיקות מינימליות שאינן פוגעות בנתונים.

בדיקת אבטחת Web ו-API צריכה לבחון את גבולות האמון, ההרשאות, הקלט, ה-State והלוגיקה העסקית. כל בדיקה במאמר מיועדת למעבדה, CTF או מערכת שניתנה לגביה הרשאה מפורשת. המאמר הנוכחי מתמקד ב-בדיקת XSS ומיועד ל-תלמידי Web PT ומפתחים. המטרה היא לתת שיטת עבודה שאפשר ליישם בתרגול, בראיון מקצועי ובסביבת עבודה, בלי להסתפק בהגדרה מילונית.

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

התרחיש המעשי במאמר הוא: מיפוי Input-to-Sink באפליקציית מעבדה.. כל הדוגמאות הן נתוני מעבדה או תיאור תהליכי. כאשר מדובר ב-Penetration Testing, Web או Cloud, יש לעבוד רק עם אישור מפורש, Scope מוגדר ויכולת לעצור את הבדיקה.

איך XSS נוצר

הנושא 'איך XSS נוצר' הוא חלק מרכזי בעבודה על בדיקת XSS. מומלץ לפרק אותו לשלוש שאלות: מהו הקלט, איזו החלטה רוצים לקבל, ואיזו ראיה מספיקה כדי להצדיק אותה. השאלות האלה מונעות שימוש אוטומטי בכלי ללא הבנת המטרה.

בתרגול, רשמו את context, encoding, CSP, stored/reflected/DOM, sanitization, השוו להתנהגות צפויה והגדירו Pivot אחד לפחות. התוצאה צריכה להיות ניתנת לבדיקה על ידי אנליסט נוסף, כולל מגבלות וצעדי המשך.

Reflected ו-Stored

הנושא 'Reflected ו-Stored' הוא חלק מרכזי בעבודה על בדיקת XSS. מומלץ לפרק אותו לשלוש שאלות: מהו הקלט, איזו החלטה רוצים לקבל, ואיזו ראיה מספיקה כדי להצדיק אותה. השאלות האלה מונעות שימוש אוטומטי בכלי ללא הבנת המטרה.

בתרגול, רשמו את context, encoding, CSP, stored/reflected/DOM, sanitization, השוו להתנהגות צפויה והגדירו Pivot אחד לפחות. התוצאה צריכה להיות ניתנת לבדיקה על ידי אנליסט נוסף, כולל מגבלות וצעדי המשך.

DOM-based XSS

הנושא 'DOM-based XSS' הוא חלק מרכזי בעבודה על בדיקת XSS. מומלץ לפרק אותו לשלוש שאלות: מהו הקלט, איזו החלטה רוצים לקבל, ואיזו ראיה מספיקה כדי להצדיק אותה. השאלות האלה מונעות שימוש אוטומטי בכלי ללא הבנת המטרה.

בתרגול, רשמו את context, encoding, CSP, stored/reflected/DOM, sanitization, השוו להתנהגות צפויה והגדירו Pivot אחד לפחות. התוצאה צריכה להיות ניתנת לבדיקה על ידי אנליסט נוסף, כולל מגבלות וצעדי המשך.

Context ו-Encoding

הנושא 'Context ו-Encoding' הוא חלק מרכזי בעבודה על בדיקת XSS. מומלץ לפרק אותו לשלוש שאלות: מהו הקלט, איזו החלטה רוצים לקבל, ואיזו ראיה מספיקה כדי להצדיק אותה. השאלות האלה מונעות שימוש אוטומטי בכלי ללא הבנת המטרה.

בתרגול, רשמו את context, encoding, CSP, stored/reflected/DOM, sanitization, השוו להתנהגות צפויה והגדירו Pivot אחד לפחות. התוצאה צריכה להיות ניתנת לבדיקה על ידי אנליסט נוסף, כולל מגבלות וצעדי המשך.

CSP, Remediation ו-Retest

בדיקה מקצועית ל-בדיקת XSS מתחילה בתנאי הצלחה ותנאי כישלון. מגדירים Case חיובי, Case שלילי, Case גבול ופעילות לגיטימית דומה. כך ניתן לזהות גם False Negative וגם False Positive.

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

מוקדי בדיקה ייחודיים

בנושא הזה מומלץ לבנות מראש מפת ראיות ממוקדת. מוקדי הבדיקה המרכזיים הם: context, encoding, CSP, stored/reflected/DOM, sanitization, sink/source. הרשימה אינה Checklist אוטומטי; כל פריט נבחר משום שהוא יכול לקשור בין ישות, פעולה וזמן או להסביר התנהגות לגיטימית.

  • context: הגדירו מהו הערך הצפוי, מה ייחשב חריג ואיזה מקור נוסף יאמת את הממצא.
  • encoding: הגדירו מהו הערך הצפוי, מה ייחשב חריג ואיזה מקור נוסף יאמת את הממצא.
  • CSP: הגדירו מהו הערך הצפוי, מה ייחשב חריג ואיזה מקור נוסף יאמת את הממצא.
  • stored/reflected/DOM: הגדירו מהו הערך הצפוי, מה ייחשב חריג ואיזה מקור נוסף יאמת את הממצא.
  • sanitization: הגדירו מהו הערך הצפוי, מה ייחשב חריג ואיזה מקור נוסף יאמת את הממצא.
  • sink/source: הגדירו מהו הערך הצפוי, מה ייחשב חריג ואיזה מקור נוסף יאמת את הממצא.

כאשר אחד המוקדים אינו זמין, יש לתעד את הפער ולבחור חלופה. לדוגמה, אם Process identifier אינו יציב, אפשר להיעזר בזמן, Host, User ו-Parent; אם Payload מוצפן, משתמשים ב-Metadata, נפח, תדירות ו-TLS/DNS context.

תהליך עבודה מומלץ

  1. הגדירו Scope ושאלת עבודה אחת בנושא בדיקת XSS.
  2. רשמו את מקורות הנתונים והראיות הדרושים: context, encoding, CSP, stored/reflected/DOM.
  3. צרו Baseline קצר של התנהגות תקינה או תוצאה צפויה.
  4. בצעו את הבדיקה המינימלית בסביבת מעבדה ושמרו זמן, קלט ופלט.
  5. בנו Timeline או טבלת השוואה והפרידו בין עובדה לפרשנות.
  6. בצעו Pivot למקור נוסף כדי לאמת או להפריך את ההסבר הראשוני.
  7. סכמו החלטה, מגבלות, פעולה מומלצת וקריטריון Retest.

תרחיש מעשי

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

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

שלבמה מבצעיםתוצר
הכנההגדירו Scope, זמן ויעד. רשמו אילו שדות או ראיות מתוך context, encoding, CSP צפויים להופיע.תוכנית בדיקה קצרה
יצירת נתוןבצעו פעולה בטוחה ומדומה הקשורה ל-בדיקת XSS, ללא מידע אמיתי או השפעה על מערכת ייצור.אירוע/Request/Flow מבוקר
איסוףאספו את הראיה הגולמית ואת ההקשר ממקור נוסף. ודאו Time zone, מזהים ושלמות.שתי ראיות מקושרות
ניתוחכתבו מה כל ראיה מוכיחה, מה אינה מוכיחה ומהו ההסבר הלגיטימי האפשרי.מסקנת ביניים
סיוםבחרו סגירה, הסלמה, Finding או Tuning; הוסיפו המלצה ו-Retest.תוצר מתועד

Checklist מעשי

  • בדקו ותעדו: Role ו-session.
  • בדקו ותעדו: Endpoint ו-method.
  • בדקו ותעדו: Request/Response.
  • בדקו ותעדו: Object identifier.
  • בדקו ותעדו: Server-side effect.
  • בדקו ותעדו: Control expected ו-remediation.
  • ציינו Time zone, גרסת כלי ושעת איסוף.
  • שמרו את הנתון הגולמי לפני סינון או שינוי.
  • כתבו מה הממצא מוכיח ומה עדיין אינו ידוע.
  • הגדירו בעלים ופעולת המשך עם מועד.

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

  • לבדוק רק Status code.
  • להסתמך על שינוי Client-side.
  • להשתמש ב-Payload מסוכן.
  • לא לבדוק Roles שונים.
  • להתעלם מלוגיקה עסקית.
  • לדווח בלי Request/Response נקיים.

העמקה מקצועית: איכות, הקשר ובקרה

עבודה איכותית בנושא בדיקת XSS נמדדת גם ביכולת לשחזר את הדרך למסקנה. מומלץ לשמור Query, Filter, Scope, Timestamp, Dataset וגרסת כלי. כך ניתן לבדוק מחדש את אותו מקרה לאחר שינוי תצורה או לאחר שמתקבל מידע נוסף.

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

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

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

סיכום ו-CTA

Cross-Site Scripting: Stored, Reflected ו-DOM הוא נושא שמחבר ידע טכני למשמעת עבודה. התחילו משאלה, אספו רק ראיות רלוונטיות, שמרו הקשר וזמן, ובחרו פעולה שאפשר להצדיק ולבדוק מחדש.

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

שאלות ותשובות

האם מותר לבדוק בדיקת XSS באתר ציבורי?

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

מה עושים כאשר חלק מהנתונים חסרים?

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

כמה זמן צריך לשמור את הראיות?

הזמן תלוי במדיניות, רגולציה, עלות וסוג האירוע. חשוב להגדיר מראש Retention, Legal hold ויכולת לייצא ראיה בפורמט שניתן לאמת.

איך מתרגלים בלי לסכן מערכת אמיתית?

משתמשים במכונות וירטואליות, נתונים מדומים, CTF או מעבדה ייעודית. בבדיקות מורשות מגדירים Scope, Stop conditions וגיבוי לפני תחילת העבודה.

מקורות

רוצים לבדוק אם המסלול מתאים לכם?

השאירו פרטים ונציג של HPI יחזור אליכם לשיחת התאמה קצרה וללא התחייבות.

פרטייך נשמרים באופן מאובטח.

ללימודי SOC וסייבר במסגרת תוכנית Cybersecurity & AI

רוצים לשמוע פרטים על התוכנית? השאירו פרטים ונחזור אליכם.

על הכותב
תאיר מלכא
מייסד ומנכ״ל HPI ומרצה לסייבר

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

מאמרים קשורים