דף הבית / Rate limiting: הבקרה שכולם מסכימים עליה ואף…
API Security
Rate limiting: הבקרה שכולם מסכימים עליה ואף אחד לא מיישם
אתר הרשמה סטנדרטי בלי הגבלה על מספר בקשות בדקה. בוט ירה עשרות אלפי בקשות וחילץ מאות שמות משתמשים אמיתיים מהתשובות של ה-API.
בתוך ים הוולידציות וההצפנות, אחד הדברים הכי קריטיים – ועדיין הכי לא מיושמים – זה מנגנון הגבלת קצב (rate limiting). כל API, לא משנה כמה הוא סגור ומבוקר, עלול להפוך לפגיע ברגע שמוותרים על הגבלת קצב. ובמיוחד אם יש מתודות שרגישות לשימוש חוזר בקצב גבוה.
אתחיל מדוגמה שנתקלתי בה – אתר הרשמה סטנדרטי, שבו כל POST /register מייצר משתמש חדש ושולח הודעה למייל. במשך חודשים לאף אחד לא הפריע שאין הגבלה על מספר בקשות בדקה. עד שיום אחד בוט פשוט ירה עשרות אלפי בקשות והציף את הדוא״ל, יצר עומס ב-DB, ובעיקר – חילץ מאות שמות משתמשים אמיתיים מהתשובות של ה-API (username taken וכו').
אבל הבעיה היא לא רק התקפות brute force. בלי rate limit כל סקרייפר או תוקף יכול פשוט לרוץ ברקע, לבדוק קיומם של משתמשים, לפרוץ עם dictionary attack על סיסמאות פשוטות, או לבדוק אם טוקן שדלף עדיין בתוקף.
ה-bypass שצריך לצפות לו
דוגמה פופולרית: הרבה מערכות בודקות קצב לפי IP, אבל מתעלמות מ-headers כמו X-Forwarded-For, או לא סופרות משתמשים עם session או token שונה. התוקף יפעיל עשרות proxies, ישנה header, או אפילו יפתח עשרות חשבונות דמה – ויעקוף כל בדיקה פשוטה.
איך נראה יישום נכון
Rate limiting צריך להיבדק בכמה שכבות – IP, session, משתמש, ואפילו מסלול פעולה (endpoint ספציפי). בפועל, יישום נכון כולל:
- עדכון מיידי של counters – לא פעם בדקה, אלא real time.
- בלוק למספר דקות לאחר חריגה.
- שליחת alert במקרה של חריגה חריגה (pattern לא רגיל).
- הצגת הודעת שגיאה שלא מגלה יותר מדי – לא "נחסמת כי ניסית יותר מדי", אלא הודעה גנרית.
- בדיקות קצה על כל API – גם פנימיים, לא רק חיצוניים.
מה לבדוק בפנטסט
- האם אפשר לשלוח 10,000 בקשות דרך 10 sessionIds שונים ולא להיחסם?
- מה קורה אם מחליפים header של IP?
- האם rate limit נשמר גם ב-POST וגם ב-GET?
- האם הוא מופעל גם על endpoints שלא מיועדים לפרונטנד?
ראיתי מערכות ענק שנפלו על זה – עד שהגיע בוט וניצל בדיוק את אותו חור קטן שאף אחד לא בדק.
והמלצה כללית ממני – לא להסתפק בספרייה חיצונית, תמיד לבדוק integration עם הלוגיקה העסקית של המערכת.
פוסט זה פורסם לראשונה בלינקדאין בתאריך 2025-07-21. — ארז מטולה
להמשיך לקרוא
עוד מהבלוג
API Security
מצאנו SSRF אצל לקוח – מה זה, ולמה זה מסוכן
הסבר קצר ומעשי על SSRF, בעקבות ממצא אמיתי בבדיקת חוסן שביצענו אצל אחד הלקוחות שלנו.
לקריאהAPI Security
כשהמשתמש מספק את ה-regex: שורה אחת שהפילה את ה-API
שדה חיפוש מתקדם אפשר למשתמשים לסנן לפי ביטוי רגולרי משלהם, שנכנס ישירות ל-new Regex(userInput).
לקריאהAPI Security
למה בכל מערכת עם תורי הודעות יש חורי אבטחה
כל microservice קיבל credentials של publish ו-subscribe לאותו ערוץ, בלי ACL. הודעה מזויפת אחת, ובוצע refund בלי authorization.
לקריאהספרו לנו מה המערכת עושה ומה מדאיג אתכם.
אם בדיקת חדירה אינה מה שאתם צריכים עכשיו, נאמר זאת.