מונה עם תפוגה
חלק מהיחידה אימות ואבטחה במסלול ה-Node.js של Coddy. שיעור 22 מתוך 24.
חלון קבוע סופר ניסיונות החל משעת התחלה אחת. שמור את since לצד המונה. בחלון של דקה אחת, תוקפו פג כאשר now - since מגיע ל־60000 מילישניות.
// חלון של עשר שניות בדוגמה זו
if (now - since >= 10000) {
count = 0;
since = now;
}
count += 1;במהלך החלון, שמור על שעת ההתחלה המקורית שלו. הזזתה אחרי כל ניסיון תמשיך להאריך את זמן ההמתנה. התרגול הזה מספק את now כדי שתוכל לבדוק את הגבול בלי להמתין. שרת פעיל מקבל את השעה הנוכחית מ־Date.now(). פרויקט הכניסה משתמש באותה רשומה { count, since }.
אתגר
קלעדכן רישום של כשלים במשך דקה אחת בקובץ exercise.js. אם now - since הוא לפחות 60000, התחל חלון חדש ב-now עם ספירה של 1. אחרת, הגדל את הספירה והשאר את since ללא שינוי. החזר את שני השדות.
שלח POST עם {"count":3,"since":0,"now":10000}: התוצאה הצפויה היא {"count":4,"since":0}. כאשר now:60000, התוצאה הצפויה היא {"count":1,"since":60000}.
הבקשה הראשונית GET /result משתמשת בדוגמה שסופקה {"count": 2, "since": 1000, "now": 61000}. השתמש ב-POST /result עם גוף JSON כדי לנסות קלטים אחרים.
נסו בעצמכם
export function exercise({ count, since, now }) {
return { count: count + 1, since };
}
כל השיעורים ביחידה אימות ואבטחה
תרגלו בעצמכם: Express אונליין