קובץ שנשמר אינו עדיין הורדה מאומתת
בדקו שהורדה דרך ה-proxy מכילה את הקובץ הצפוי, ולא עמוד אימות או תגובה חלקית, לפני פרסום או שימוש.
report.xlsx היפותטי הוא 8 KB ונפתח כעמוד התחברות. התוכנית שמרה קובץ בהצלחה, אך מעולם לא השיגה את הגיליון המיועד. שם קובץ נבחר מקומית; הוא אינו הוכחה למה שהגיע.
הפכו את הקבלה לשלב נפרד לפני פרסום ההורדה הזמנית:
- דרוש העברה מוצלחת וסטטוס תגובה צפוי. שמרו על השגיאה במקום להתייחס לבתים שנכתבו לפניה כאל שלמים.
- השוו את התוכן לסוג הקובץ הצפוי. עמוד התחברות או סינון עשוי להחזיר 200. ייתכן שה-Content-Type שגוי, ותחילית HTML בגיליון היא אזהרה שיש לחקור. קובץ שמתחיל בשורת סטטוס HTTP מצביע במקום זאת על מסגור תגובה גולמית.
- אמתו את כל הבתים שנשמרו מול סכום ביקורת או חתימה מהימנים כשאלה זמינים. רק לאחר שהבדיקות הנדרשות יעברו ראוי שהאפליקציה תפרסם או תשתמש בקובץ הסופי.
חישוב hash בלי ערך צפוי מזהה רק את הבתים שקיבלתם. סכום ביקורת לא חתום שנאסף דרך אותו נתיב לא מהימן עשוי לחלוק את חולשתו של הקובץ; השתמשו בציפייה מהימנה ובלתי תלויה.
היזהרו גם בהשוואות גודל. לקוח HTTP עשוי לפענח את קידוד התוכן בזמן הקריאה, ולכן אורך הקובץ המתקבל עשוי להיות שונה באופן לגיטימי מכותרת המתארת את ההודעה המקודדת. השוו את ציפיית המפרסם לייצוג שנשמר בפועל.
אם ניסיון נכשל, שמרו את הפלט הזמני רק להמשך מכוון או השליכו אותו. השארת בתים חלקיים בנתיב הסופי מאלצת את התוכנית הבאה לנחש אם הם שמישים.