
console.log, ובדף האינדקס לחצן test dos attack שמבצע בלולאה 100 בקשות Ajax ל-api/forum. הלחיצה הציפה את הקונסול בהודעות, והשרת משרת הכול, כולל גישות לדאטאבייס שהן כבדות יותר מחישוב פשוט.npm i express-rate-limit, ספרייה שמודדת כמה בקשות מגיעות מאותו לקוח וחוסמת כשצריך.server.use על נתיבי ה-API, כמה שיותר מוקדם, לפני כל דבר אחר ובקרבה לבקשה עצמה. אפשר גם ברמת האתר כולו, אבל אז צריך לבדוק שזה מתאים לכל הדפים.windowMs הוא משך חלון הזמן, ו-max הוא מספר הבקשות המותר בחלון מאותה כתובת IP. בהדגמה חלון של שנייה ו-max של בקשה אחת, עם הודעה "are you a hacker?".הטקסט המלא של הדקות הראשונות בהרצאה «הגנה מהתקפות DDOS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הסקיוריטי אישו הבא שלנו נקרא DOS. DOS זה קיצור של DENIED OF SERVICE. זה מצב שבו האקר מבקש המון המון המון בקשות בבת אחת מהאתר שלנו, מאות או אלפים בבת אחת לאורך זמן, כמובן בלי הפסקה, בלי הפסקה, ואז האתר שלנו רק משרת את הבקשות שלו ולא יכול לתת שירות אמיתי ליוזרים אמיתיים שרוצים שירות מהאתר.
בגלל זה הוא נחשב Dני of Service. הוא בעצם מונע שירות עבור יוזרים אמיתיים. מונח נוסף שקיים זה DDoS. DDoS זה קיצור של Distributed Dני of Service.
זה מצב שהרבה האקרים בבת אחת מכל מיני מקומות בעולם מבצעים התקפה על איזשהו אתר, ואז כמובן זה עוד יותר חמור. אנחנו רוצים למנוע את הדבר הזה, לא לאפשר לאותו בן אדם לבקש כל כך הרבה בקשות בבת אחת.
ראשית בואו נראה מה בעצם קורה או איך האקר יכול לבקש כל כך הרבה בקשות בבת אחת ואז נראה איך אנחנו יכולים למנוע את זה. נלך לקונטרולרים, ניגש רגע לבוא נניח פורום ופה בפורום ברגע שמבקשים את כל ההודעות מהפורום אז נציג console.log user requesting forum messages.
כל פעם שגולשים, פעם אחת, כל יוזר, אני את זה רוצה לראות על הקונסול. עכשיו אנחנו רוצים לגשת ולדמות התקפה של איזשהו האקר.
בואו ניגש רגע לדוגמה לאינדקס. באינדקס ניגש לכאן, נעשה איזה קו, ומה שאנחנו רוצים לעשות זה דמו כזה. ניקח לחצן, בטון טסט דוס אטאק.
ניקח און קליק שווה אטאק פונקציה. בואו ניקח סקריפט ממש כאן כאילו רק לצורך בדיקה עם הפונקציה אטאק. מה שאנחנו רוצים לעשות בפונקציה לרוץ, בואו ניקח אפילו רק 100 פעם לא נפציץ יותר מדי את האתר כל עוד i קטן שווה ל-100.
פלוס פלוס וניקח את jQuery אג'אקס וניתן אובייקט שיש לו URL גלוש לי בבקשה ל-http localhost 3000 api forum זה בעצם טובת שקשורה לפורום אנחנו יכולים לראות את זה פה אם גולשים ל-api פורום אז הפורום קונטרולר מקבל פעולה והנתיב הראשי שלו מחזיר לנו את ההודעות זהו זה כל מה שאנחנו צריכים 100 פעם האקר יכול לקחת את זה ובמשך שלושה ימים
לא להפסיק לעשות איזו הילולה סופית שעושה את זה אז אנחנו רק 100 פעם בואו רגע נעצור נריץ ניגש נפתח את זה האמת ונרפרש את האתר שלנו הנה הלחצן נשים אותו פה מצעד ונלחץ עליו קליק ושימו לב מה קורה כאן בבת אחת ביקשנו מלא מלא מלא הודעות והאתר אין לו ברירה
הוא לא יודע מי מבקש את זה כרגע הוא פשוט משרת אותנו אז אתם יכולים להגיד נו מה הבעיה אבל ברגע שהוא עשה את זה הוא עמוס זאת הנקודה של התקפת דוס הוא עמוס והוא לא יכול לתת בצורה טובה שירות לאנשים רגילים יוזרים רגילים שרוצים את המידע שימו לב גם שיש פה גישה לדאטאבייס וכל גישה
לדאטאבייס זה יותר איטי מסתם חישוב מהיר שמתבצע. האתר עכשיו תוכן עבודה. אז בואו רגע נעצור את זה, נבטל אפילו את הקונסול ונשים אותו מחדש, ננקה אותו ונראה איך אנחנו יכולים לטפל בזה ומה קורה אחרי הטיפול אם אני עוד פעם לוחץ על הלחצן.
אז אנחנו חוזרים רגע לפה ל-app.js ומה שאנחנו רוצים לעשות זה להתקין איזושהי ספרייה, בואו ניגש לפה, ונתקין npmi את הספרייה express rate limit.
זאת ספרייה טובה שמאפשרת לנו למדוד כמה בקשות מגיעות מאותו לקוח ולחסום אותן אם צריך. אז הנה יש לנו פה את ההתקנה הזאת, עכשיו אנחנו רוצים קודם כל כאן אחרי פרס קונמוסט את אקספרס רייט לימיט פווייר אקספרס רייט לימיט זאת הספרייה ומה שאנחנו