PracticU

אבטחה - MVC Security - חלק 6

בלי כתוביותעם כתוביות
PracticU › קורס MVC › אבטחה - MVC Security - חלק 6
מילון מושגים:
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
סשן - פרק זמן של פעילות רציפה בין משתמש למערכת, שבו נשמר מידע על מצבו, למשל לאחר התחברות לאתר.
סיסמה - מחרוזת תווים סודית שמשמשת לאימות זהות המשתמש בעת כניסה למערכת. ככל שהיא ארוכה ומורכבת יותר, כך קשה יותר לנחש אותה.
טוקן - פיסת מידע שמשמשת לאימות או להרשאה, שהמערכת מנפיקה ללקוח ומוצגת בבקשות הבאות במקום סיסמה.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.

אבטחה - MVC Security - חלק 6
בהרצאה הזאת מכירים התקפה בשם Cross-Site Request Forgery (CSRF), שבה תוקף גורם לדפדפן של משתמש מחובר לשלוח בקשה לאתר בלי ידיעתו. הפתרון הוא מפתח סודי שמשתנה לכל משתמש ולכל טופס.
איך ההתקפה עובדת
משתמש מחובר לאתר שלנו, ובזמן שהוא מחובר הוא נכנס לאתר אחר שהתוקף הקים. האתר של התוקף שולח בקשה לאתר שלנו, והדפדפן מצרף אליה את הסשן של המשתמש. כך הפעולה מתבצעת בשם המשתמש, למשל שינוי סיסמה או הוספת מוצר.
הפתרון: Anti-Forgery Token
1. בטופס: מוסיפים לטופס את ה-Helper Html.AntiForgeryToken(). הוא יוצר שדה מוסתר עם מפתח רנדומלי ארוך שהשרת יוצר.
2. בשרת: בפעולה שמקבלת את הטופס מוסיפים את האטריבוט ValidateAntiForgeryToken, שמשווה את המפתח שהגיע לטופס למפתח שמופיע בעוגיה של המשתמש.
3. התוצאה: תוקף לא יכול לדעת את המפתח ולכן לא יכול לשלוח בקשה תקינה. בדוגמה, בקשה בלי המפתח נדחתה עם הודעה שהמפתח חסר.
שימו לב
המפתח מחייב את הטופס לשלוח אותו. אם מוסיפים את האטריבוט לפעולה בלי שהטופס כולל את ה-Helper, כל שליחה תיכשל. כדאי לבדוק ששני הצדדים מוגדרים.
השיעור הבא בקורס: אבטחה - MVC Security - חלק 7
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).

להורדת קוד מקור של כל הדוגמאות בקורס MVC – לחץ כאן


פרקי ההרצאה: אבטחה - MVC Security - חלק 6

  1. 00:00

    מה זה Cross Site Request Forgery

  2. 00:52

    תרחיש התחזות למשתמש רשום

  3. 01:48

    מפתח סודי שמשווים בכל Request

תמלול ההרצאה: אבטחה - MVC Security - חלק 6

הטקסט המלא של הדקות הראשונות בהרצאה «אבטחה - MVC Security - חלק 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:15

    הדבר הבא שאנחנו הולכים לטפל בו בעולם הסקיוריטי זה איום שנקרא Cross-Site Request Forgery, כלומר זיוף של ריקווסט, כאשר הזיוף מתבצע על ידי מיטוב הריקווסט של המשתמש למקום אחר.

  2. 00:34

    קוראים לזה גם CSRF, שזה קיצור של Cross-Site Request Forgery. עכשיו, מה זה בדיוק? מה שקורה זה שאנחנו מרימים אתר לאוויר. יכול להיות שיש איזשהו לקוח שהוא דווקא לקוח הגון, לא האקר או לא שום דבר, יש לו חשבון באתר והוא גולש לאתר שלנו עם החשבון שלו, מבצע רישום, מכניס יוזרלם ופסוורד ונכנס לאתר בתור הוא עצמו.

  3. 01:00

    ואז האקר, איכשהו גורם לו להיות מנותב על ידי זה שהוא נותן לו איזשהו לינק באימייל או כל שיטה אחרת, גורם לו לנתב את עצמו לבצע ריקווסט לאתר שהאקר ירים להעביר ולכן אותו בחור הגון מצליח לבצע איזשהו ריקווסט לאתר של ההאקר

  4. 01:19

    ההאקר לוקח את הריקווסט שלו, את הפרטים שלו ומתחזה אליו ואז שוב פעם גולש לאתר שלנו כאילו שהוא הבן אדם המקורי וכמובן אם הוא מתחזה לבן אדם המקורי אז הוא יכול ללכת ולשנות לו את הפסמה, לבצע לו פוסטים לכל מיני מקומות להוסיף מוצרים, לעדכן מוצרים, למחוק, לבצע ככל העולה על רוחו כאילו שהוא הבן אדם המקורי

  5. 01:46

    כי הוא לקח לו כביכול את הריקווסט בצורה כלשהי ומתחזה אליו. אז כל הסיפור הזה נשמע מאוד מאוד מורכב אבל הפתרון שלו הוא מאוד מאוד פשוט.

  6. 01:59

    הפתרון מורכב פשוט מאוד ממפתח סודי שאנחנו צריכים לשתול בכל ריקווסט וכאשר המשתמש מבצע פוסט האתר משווה את המפתח שהוא נתן לו למפתח שהוא קיבל ממנו, וזה מתבצע בסך הכל שתי פקודות.

  7. 02:19

    פקודה ראשונה, אנחנו צריכים ללכת ל-views,

לקורס המלא: קורס MVC אונליין בעברית

ההרצאה הקודמת: הרשאות לפי משתמשים - Users & Roles

ההרצאה הבאה: אבטחה - MVC Security - חלק 7

הרצאות קשורות מקורסים אחרים

  • הסבר על MVC
  • Security Groups - חלק 1
  • אבטחה עם VM Templates
  • מושגי יסוד ב-Security

קורסים נוספים במסלול

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס ASP.NET
  • קורס Git ו-GitHub עם Visual Studio