PracticU

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

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

אבטחה - MVC Security - חלק 5
בשלב הזה מגבילים גישה לפעולות באתר לפי מי שמחובר. בשיעור מוסבר איך מונע גישה למשתמשים לא רשומים, ואיך מאפשרים פעולה רק למשתמשים או לתפקידים מסוימים.
האטריבוט Authorize
1. הגבלה לפעולה: מוסיפים את האטריבוט Authorize מעל פעולה, והפעולה נגישה רק למשתמשים רשומים.
2. הגבלה למשתמשים מסוימים: האטריבוט מקבל רשימה של שמות משתמשים, מופרדים בפסיקים, או רשימה של תפקידים (roles). בדוגמה, מחיקה מותרת רק למשתמשים מסוימים, או רק למנהלים.
3. הגבלה לכל הקונטרולר: אם האטריבוט מוגדר על הקונטרולר כולו, כל הפעולות בו נחסמות, ואז מתירים במפורש פעולות בודדות באמצעות AllowAnonymous, למשל דף הרשימה ודף הפרטים.
Whitelist לעומת Blacklist
ההרצאה מסבירה שברשימה שחורה מונים מי אסור, ולכן כל מי שלא ברשימה מורשה. ברשימה לבנה מונים מי מורשה, וכל השאר נחסם. בגישת האבטחה, רשימה לבנה נחשבת חכמה ונכונה יותר.
הגדרה גלובלית
אפשר לחסום את כל האתר כברירת מחדל, ואז לפתוח במפורש את הפעולות שמיועדות לכולם, כמו התחברות והרשמה, שחייבות להיות פתוחות לכל מי שלא מחובר.
שימו לב
המחסום הזה עובד רק אם הוא מוגדר על כל פעולה רגישה. פעולה שלא סומנה נשארת פתוחה, ולכן כדאי לעבור על כל הקונטרולרים ולוודא שהגדרת ההרשאה נכונה בכולם.
השיעור הבא בקורס: הרשאות לפי משתמשים - Users & Roles
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).

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


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

  1. 00:00

    הגנה על Update ו-Delete עם Authorize

  2. 01:11

    הגבלת גישה לפי Users ו-Roles

  3. 01:55

    Authorize ללא פרמטרים ועל ה-Controller

  4. 02:32

    פתיחת Actions עם AllowAnonymous

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

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

  1. 00:16

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

  2. 00:32

    אוקיי, זה אומר שבכל פונקציה שאנחנו רוצים לבצע מניעת גישה למשתמשים לא רשומים אנחנו צריכים לשים את authorized.

  3. 00:43

    זאת אומרת שאנחנו צריכים גם ללכת ל-update לבצע authorized וזה אומר שאנחנו גם צריכים ללכת ל-Delete ולבצע Authorized.

  4. 00:52

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

  5. 01:11

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

  6. 01:30

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

  7. 01:49

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

  8. 02:09

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

  9. 02:28

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

  10. 02:45

    אז אולי היה עדיף לשים את האקשן, את ה-autorized כאן למעלה ולאפשר גישה לאלה. זה מתבצע על ידי allow anonymous במקרה הזה מה שאנחנו עושים אנחנו חוסמים את הגישה לכל האקשנים בקונטרולר ומאפשרים גישה רק לindex ולdetail זאת אומרת גם מי ש-anonymous וגם מי ש-register יוכל להגיע לindex ולdetail

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

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

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

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

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

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

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