ניסיונות חוזרים של אימות proxy וגופי העלאה שאינם ניתנים לחזרה
הבינו מדוע ניסיונות אימות חוזרים עלולים לחשוף זרם העלאה חד-פעמי, ובחרו במודע באחסון מוגבל או בתוכן שניתן לחזור עליו.
בקשת GET יכולה לעבור אימות דרך proxy בעוד ש-POST או PUT נכשלים בשגיאת גוף שאינו ניתן לחזרה או שגיאת גלילה לאחור. החשבון עשוי להיות תקין: החלפת אימות עשויה לדרוש בקשה נוספת לאחר שהלקוח כבר צרך את ההעלאה.
| מקור הגוף | בחירת חזרה |
|---|---|
| גוף קטן וסופי | חוצץ מוגבל יכול לשמור את הבתים שלו. |
| קובץ שניתן לחיפוש | ממשק הגלילה לאחור הנתמך על ידי הלקוח יכול להפוך אותו לניתן לחזרה. |
| מחולל, צינור או מפיק חי | מקור חד-פעמי עשוי לדרוש תכנון אחר. |
libcurl מתעד קריאות חיפוש לשימושים כולל אימות רב-מעברי. Jersey מציע מצבי עיבוד ישויות עם חוצץ ומפוצלים בכפוף להתנהגות המחבר. דוגמת מחבר Jersey 2 Apache מציגה את ההגדרה עם החוצץ. אף אחד מהם אינו הופך העלאות בלתי מוגבלות בזיכרון לנאותות.
שחזרו את השיטה ואת מקור הגוף שנכשלים. ל-GET מכין אין העלאה לחזור עליה, והוא אינו מוכיח שהעלאה מאוחרת חולקת את החיבור או את מצב האימות שלו. יעד, אובייקט לקוח או מדיניות חיבור חדשים יכולים לשנות זאת. גוף מבוסס קובץ וזרם חי שונים גם כן גם כאשר טקסט הדוגמה שלהם זהה.
אם אתם משתמשים בחוצץ, הגדירו את מגבלת הגודל, מקום האחסון ותוחלת החיים שלו. העלאות במקביל מכפילות את העלות, ונתונים רגישים נשארים בכל מקום שבו החוצץ נשמר.
אימות מוקדם ל-proxy תואם מוכר יכול למנוע אתגר ראשוני אחד. הוא אינו יכול לשלול כל סבב אימות, הפניה או חיבור סגור מאוחרים שעשויים לדרוש ניסיון נוסף.
שמרו יחד את תגובת ה-proxy, את נקודת צריכת הגוף ואת שגיאת החזרה. לאחר מכן הבדילו בין חזרת פרוטוקול לבין תוצאת יישום לא ודאית: ייתכן שהגשה עובדה לפני שהתגובה שלה אבדה. פעלו לפי כללי האידמפוטנטיות של היעד לפני שליחה חוזרת.