פיירפוקס טוען כל תמונה פעמיים

סיפורו של באג מוזר בפיירפוקס ופתרונו - או יותר נכון, איך הבנו איך לפתור אותו
פיירפוקס שמציג תמונה

ממש לא מזמן, נתקלתי בבאג משונה ששרף לי כמה שעות מהחיים ויכול להיות רלוונטי גם לכם. במוצר שאותו אני מפתח, ישנו מודול סטטיסטיקות שבודק הורדות של קבצים שונים שאותם לקוחות מורידים. חלק מהקבצים הם קבצים שניתן להריץ כמו jar או exe וחלק מהם הם קבצי rar. חלק אחר של הקבצים הם תמונות וטקסטים שהלקוח יכול להוריד אותם. בדפדפנים מודרניים, כפי שאתם יודעים (אלא אם כן אתם זקנים שמשתמשים באקספלורר), כאשר ניגשים לקובץ תמונה, טקסט או PDF, הדפדפן פותח אותם ישירות.

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

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

בדיקה בקוד עצמו הראתה שהתמונה אכן נקראת פעמיים – כלומר הדפדפן עצמו קורא לתמונה פעמיים. השתמשנו ב-wireshark וב-fiddle וראינו שבפיירפוקס ובפיירפוקס בלבד, מתבצעות שתי קריאות בהפרשי מילישניות בודדים לתמונה. זה לא משתחזר בשום דפדפן אחר, כולל אינטרנט אקספלורר הארור.

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

אני וראש הצוות שלי, לירן טל, בהינו מול התמונה הזו ביאוש:

פיירפוקס שמציג תמונה
פיירפוקס שמציג תמונה

ולפתע, לירן התחיל לקפוץ כמו משוגע ולומר 'מצאתי! מצאתי! אני גאון! אני גאון!'

אחרי שהוא הסביר לי, הבנתי. מי שרוצה, מוזמן לנסות להביט בתמונה שלעיל ולנסות להגיע לתשובה הנכונה. מי שרוצה לראות את התשובה – מוזמן ללחוץ על הכפתור הבא להצגת המשך הפוסט:


פוסטים נוספים שכדאי לקרוא

DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

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

פתרונות ומאמרים על פיתוח אינטרנט

רינדור של קליינט סייד עם SSR

הסבר קצר על SSR מול רינדור קלאסי ולא. לא תמיד זה טוב להשתמש בו. אין כדור כסף שיכול לפתור הכל.

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

למפתחי ובוני אתרי אינטרנט

מדריך לשאילתות יעילות ל Chat GPT

כל אחד יכול לשאול את GPT, אבל אם תרצו לשאול אותו שאלות על תכנות – יש כמה שיטות וטיפים ליעל את העבודה מולו.

גלילה לראש העמוד