משאבים · 116

postMessage: לבדוק מקור, חלון ופקודה

להגדיר חוזה הודעות ל־iframe או לחלון קופץ הדוחה שולחים ונתונים לא צפויים.

מעודכן · 2 min

מה מדריך זה עוזר להשיג

  • להגדיר צדדים וסוגים
  • לאמת לפני השפעה
  • לבדוק ניווט והודעות חורגות

בדיקה מהירה

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

שיטה שלב אחר שלב

  1. 1

    להגדיר צדדים וסוגים

    רשמו origins מדויקים, חלון צפוי וסוגי הודעות. השתמשו ב־targetOrigin מדויק לנתונים רגישים. origin כולל פרוטוקול, מארח ופורט; חיפוש מחרוזת חלקית בשם דומיין אינו מאמת שולח.

    חוזה מקור, חלון, סוג ונתונים מינימליים.

  2. 2

    לאמת לפני השפעה

    השוו event.origin ובשילוב זה event.source לחלון הצפוי. בדקו מבנה, ערכים מותרים ומצב פעולה. התייחסו לתוכן כנתונים בלי eval או הזרקת HTML. מקור מאושר אינו מחליף הרשאה בשרת.

    רצף אימות ודחייה בלי השפעה עסקית.

  3. 3

    לבדוק ניווט והודעות חורגות

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

    מטריצת דחייה וניקוי מאזינים.

מקרה קבלה שניתן לשחזר

דוגמה בדיונית: הנתונים אינם מתארים לקוח או תוצאה שנצפתה.

הצגת נתוני המקרה
{
    "allowed_origin": "https://widget.example",
    "observed_origin": "https://widget.example",
    "expected_window": "active_iframe",
    "observed_window": "another_window",
    "payload_schema_valid": true,
    "expected": "reject_without_effect"
}

החלטה צפויה

דוגמה בדיונית: https://widget.example מאושר אבל event.source הוא חלון אחר. החוזה דורש את חלון ה־iframe הפעיל: דחו בלי פקודה.

MDN — Window.postMessage

יומן הקבלה שלכם

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

אין שמירה אוטומטית. ייצאו לפני יציאה.

מדדי ניהול

מדדמה הוא מודדפעולה ראשונה
מקרים לא צפויים שנדחומקרים שליליים שנדחו בלי השפעה / מקרים שליליים שבוצעותעדו מקור, חלון ומצב
חילופים מאושרים שהושלמותרחישים צפויים שהושלמו / תרחישים שנבדקוהפרידו קבלה והשפעה מאומתת

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

    שאלות נפוצות

    האם בדיקת event.origin מספיקה?

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

    הפניות רשמיות

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

    תאריך בדיקת המקורות .