SlideShare a Scribd company logo
1 of 17
Download to read offline
ASP.Net Security
natankrasney@gmail.com
1
‫אתר‬ ‫אבטחת‬
: ‫הבאים‬ ‫המאפיינים‬ ‫את‬ ‫כוללת‬ ‫אתר‬ ‫אבטחת‬
Authentication
Authorization
Confidentiality
natankrasney@gmail.com
2
Authentication
.‫וססמה‬ ‫משתמש‬ ‫שם‬ ‫באמצעות‬ ‫לדוגמא‬ ‫המשתמש‬ ‫זהות‬ ‫את‬ ‫מוודאים‬ ‫בו‬ ‫תהליך‬ ‫זהו‬
: ‫עבור‬ ‫לדוגמא‬ ‫חשוב‬ ‫התהליך‬
●‫שלה‬ ‫באתר‬ ‫רשומים‬ ‫שנהיה‬ ‫בלי‬ ‫בה‬ ‫לקנות‬ ‫ניתן‬ ‫שלא‬ amazon ‫לדוגמא‬ ‫אינטרנטית‬ ‫חנות‬
●facebook‫ב‬ ‫חשבון‬ ‫לפתוח‬ ‫מנת‬ ‫על‬
●gmail‫ב‬ ‫מייל‬ ‫חשבון‬ ‫לקבל‬ ‫מנת‬ ‫על‬
●‫ועוד‬
ASP.Net ‫ב‬ ‫להשתמש‬ ‫ואפשר‬ authentication‫ב‬ ‫לתמיכה‬ ‫עצמאית‬ ‫מערכת‬ ‫לממש‬ ‫אפשר‬
‫כאן‬ ‫לדוגמא‬ ‫ראו‬ Identity
natankrasney@gmail.com
3
ASP.Net Identity ‫עם‬ ‫פרויקט‬ ‫יצירת‬
Individual User Accounts ‫מסוג‬ Authentication ‫ובחירת‬ (empty ‫)לא‬ MVC ‫פרויקט‬ ‫פתיחת‬
.‫גוגל‬ , ‫פייסבוק‬ ‫באמצעות‬ ‫לדוגמא‬ social login ‫וגם‬ userpassword ‫בעזרת‬ ‫גישה‬ ‫מאפשר‬ ‫וזה‬
.‫מהמשתמש‬ ‫קוד‬ ‫של‬ ‫צורך‬ ‫ללא‬ login , logout , register‫ל‬ ‫אפשרות‬ ‫נותן‬ ‫שנוצר‬ ‫הפרויקט‬
natankrasney@gmail.com
4
ASP.Net Identity ‫של‬ ‫ארכיטקטורה‬
: ‫החשובות‬ ‫המחלקות‬
natankrasney@gmail.com
5
‫מעל‬ ‫ממומש‬ Storage
‫בעזרת‬ SQL Server
EntityFramework
‫שירותים‬
”‫“שחקנים‬
IdentityRole
ModelViewController - ASP.Net Identity
: ‫אוטמטית‬ ‫יוצר‬ Identity
●AccountController , ManageController
●View
●Model
natankrasney@gmail.com
6
ASP.Net Identity Storage
natankrasney@gmail.com
7
logged in ‫שאינו‬ ‫למשתמש‬ ‫גישה‬ ‫הגבלת‬
‫בשם‬ attribute ‫בעזרת‬ ‫נעשה‬ ‫וזה‬ Login ‫שעשה‬ ‫למשתמש‬ ‫רק‬ (View‫ל‬ ‫גישה‬ ‫)ודרכה‬ action‫ל‬ ‫גישה‬ ‫להגביל‬ ‫ניתן‬
: [Authorize]
●action‫ל‬ ‫הגישה‬ ‫תותר‬ ‫אז‬ logged in ‫כבר‬ ‫והמשתמש‬ ‫במידה‬
●action ‫יוחזר‬ ‫הוא‬ ‫אז‬ ‫תקינה‬ ‫בצורה‬ ‫יכנס‬ ‫הוא‬ ‫משם‬ ‫אם‬ .login ‫למסך‬ ‫יועבר‬ ‫הוא‬ ‫אז‬ logged in ‫אינו‬ ‫והמשתמש‬ ‫במידה‬
‫להיכנס‬ ‫ניסה‬ ‫אליה‬
: ‫לממש‬ ‫אפשר‬
●action‫ה‬ ‫ברמת‬
●(‫במחלקה‬ ‫ים‬ - action ‫ה‬ ‫לכל‬ ‫שייושם‬ ‫)כך‬ controller‫ה‬ ‫ברמת‬
●‫הוספת‬ ‫באמצעות‬ RegisterGlobalFilters ‫דרך‬ ‫האפליקציה‬ ‫ברמת‬
filters.Add(new AuthorizeAttribute());
login ‫עשה‬ ‫לא‬ ‫אם‬ ‫גם‬ action‫ל‬ ‫גישה‬ ‫מאפשר‬ [AllowAnonymous] ‫בשם‬ Attribute
natankrasney@gmail.com
8
‫עם‬ ‫בית‬ ‫בדף‬ ‫לדוגמא‬ ‫לשימוש‬ ‫נוח‬
‫רשום‬ ‫משתמש‬ ‫שרק‬ ‫שרוצים‬ ‫לינק‬
.‫אליו‬ ‫להיכנס‬ ‫יוכל‬
OAuth
. ‫ועוד‬ google , linkedin, facebook ‫של‬ ‫בשמוש‬ authentication ‫פרוטוקול‬ ‫הוא‬ OAuth
login ‫לעשות‬ ‫למשתמשים‬ ‫אפשר‬ OAuth
OAuth - Open Authorization
‫הפעולות‬ ‫את‬ ‫מחייבת‬ ‫שלו‬ facebook‫ה‬ ‫חשבון‬ ‫באמצעות‬ ‫שלנו‬ ‫לאתר‬ Login ‫לעשות‬ ‫למשתמש‬ ‫אפשרות‬ ‫מתן‬
: ‫כמפתחים‬ ‫שלנו‬
●facebook‫ב‬ ‫כאפליקציה‬ ‫שלנו‬ ‫האתר‬ ‫רישום‬
●‫בעזרתו‬ user name ,password ‫מעיין‬ ‫זה‬ .‫שלנו‬ ‫האתר‬ ‫עבור‬ ‫מפייסבוק‬ secret ‫ו‬ api key ‫קבלת‬
‫פייסבוק‬ ‫מול‬ ‫יתקשר‬ ‫שלנו‬ ‫האתר‬
●‫דרך‬ ‫שלנו‬ ‫לאתר‬ login ‫לעשות‬ ‫ירצה‬ ‫שמשתמש‬ ‫ברגע‬ api key , secret‫ה‬ ‫את‬ ‫לפייסבוק‬ ‫יעביר‬ ‫האתר‬
‫שלנו‬ ‫באתר‬ facebook ‫כפתור‬
●https‫ב‬ ‫נשתמש‬ facebook‫ל‬ ‫שלנו‬ ‫האתר‬ ‫בין‬ ‫התקשורת‬ ‫עת‬ ‫להגן‬ ‫מנת‬ ‫על‬
natankrasney@gmail.com
9
OAuth ‫ראשון‬ ‫שלב‬
‫שלנו‬ ‫האתר‬ ‫דרך‬ facebook‫ל‬ ‫המשתמש‬ ‫של‬ login ‫לאחר‬ facebook‫ל‬ ‫פונה‬ ‫שלנו‬ ‫האתר‬
natankrasney@gmail.com
10
Our Web Site
OAuth ‫שני‬ ‫שלב‬
.‫אומתה‬ ‫שלו‬ ‫שהזהות‬ ‫כך‬ ‫בפייסבוק‬ ‫חשבון‬ ‫באמת‬ ‫יש‬ ‫שלמשתמש‬ ‫מוכיח‬ ‫שחוזר‬ token‫ה‬
‫אצלנו‬ ‫אותו‬ ‫שנרשום‬ ‫כך‬ ‫לאתר‬ ‫המשתמש‬ ‫את‬ ‫מחזירה‬ facebook
natankrasney@gmail.com
11
Our Web Site
Social Login
‫לאתר‬ Login ‫לבצע‬ ‫מנת‬ ‫על‬ ‫גוגל‬ , ‫לינקדאין‬ , ‫טוויטר‬ , ‫פייסבוק‬ ‫בחשבונות‬ ‫שימוש‬
‫כאן‬ ‫ראו‬
‫מ‬ ‫הפרויקט‬ ‫את‬ ‫לשדרג‬ ‫חשוב‬ ‫אבל‬ ‫מורכב‬ ‫אינו‬ ‫לפייסבוק‬ Login
Microsoft.Owin.Security.Facebook version 3.0.1
‫באמצעות‬
Install-Package Microsoft.Owin.Security.Facebook
‫דרך‬
Tools->NuGet Package Manager->Package Manager Console
natankrasney@gmail.com
12
email confirmation ‫בעזרת‬ ‫אתר‬ ‫אבטחת‬ ‫שיפור‬
email confirmation ‫לעשות‬ ‫איך‬ ‫שמסביר‬ ‫מאמר‬ ‫כאן‬ ‫ראה‬
: ‫הערה‬
●: 6.3.4 ‫גרסה‬ ‫לקחת‬ ‫וצריך‬ ‫נכון‬ ‫אינו‬ ‫בלינק‬ ‫שמופיע‬ SendGrid
Install-Package SendGrid -Version 6.3.4
email ‫ליישם‬ ‫מנת‬ ‫על‬ .ReadMe‫ה‬ ‫את‬ ‫לקרוא‬ ‫צריך‬ ‫אבל‬ ‫כאן‬ ‫עובדת‬ ‫גרסה‬ ‫יש‬
‫השקף‬ ‫בראש‬ ‫בלינק‬ ‫שמוצג‬ ‫התהליך‬ ‫את‬ ‫לבצע‬ ‫צריך‬ ‫חדש‬ ‫בפרויקט‬confirmation
natankrasney@gmail.com
13
Authorization
.‫בצועם‬ ‫ונאכף‬ ‫למשתמשים‬ (Roles) - ‫תפקידים‬ ‫מוגדרים‬ ‫בו‬ ‫תהליך‬
‫משתמשים‬ ‫עבור‬ ‫תפקידים‬ ‫מספר‬ ‫להגדיר‬ ‫אפשר‬ ‫אינטרנטיות‬ ‫חנויות‬ ‫רשת‬ ‫של‬ ‫באתר‬ ‫לדוגמא‬
: ‫רשומים‬
●‫ברשימת‬ ‫לצפות‬ ‫יכול‬ ‫לא‬ ‫אבל‬ ‫בעבר‬ ‫קנה‬ ‫שהוא‬ ‫במוצרים‬ ‫לצפות‬ ‫יכול‬ : ‫פשוט‬ ‫משתמש‬
‫מוצרים‬ ‫להוסיף/לערוך/למחוק‬ ‫יכול‬ ‫ולא‬ ‫המשתמשים‬
●‫חנות‬ ‫מנהל‬ ‫להגדיר‬ ‫יכול‬ ‫לא‬ ‫אבל‬ ‫מוצרים‬ ‫להוסיף/לערוך/למחוק‬ ‫לדוגמא‬ ‫יכול‬ - ‫חנות‬ ‫מנהל‬
●‫חנות‬ ‫מנהל‬ ‫להגדיר‬ ‫בפרט‬ ‫הכל‬ ‫לבצע‬ ‫יכול‬ - ‫רשת‬ ‫מנהל‬
natankrasney@gmail.com
14
Role ‫באמצעות‬ logged in ‫למשתמש‬ ‫גישה‬ ‫הגבלת‬
: ‫הבאה‬ ‫בצורה‬ ‫להכניס‬ ‫אפשר‬ role‫ה‬ ‫את‬
AspNetRoles ‫לטבלה‬ ‫ומכניסים‬ admin ‫לדוגמא‬ role ‫של‬ ‫שם‬ ‫מגדירים‬ ‫קודם‬
‫משתמש‬ ‫של‬ id ‫לבין‬ ‫הזה‬ role ‫של‬ id ‫ה‬ ‫בין‬ AspNetUserRoles ‫בטבלה‬ ‫מקשרים‬ ‫כך‬ ‫אחר‬
AspNetUsers ‫בטבלה‬ ‫שמופיע‬
‫דרכים‬ ‫בשתי‬ ‫להשתמש‬ ‫ניתן‬ ‫בקוד‬ ‫כך‬ ‫אחר‬
● User.IsInRole(“admin”)
● [Authorize(Roles=”admin”)]
natankrasney@gmail.com
15
‫בקוד‬ ‫תנאי‬ ‫בתוך‬
View ‫או‬ controller‫ב‬
action ‫של‬ attribute‫כ‬
controller‫ב‬
‫את‬ ‫לשים‬ ‫כדאי‬
‫קובץ‬ ‫בתוך‬ admin
constants
Confidentiality
‫לגרום‬ ‫שיוכל‬ hacker ‫לדוגמא‬ ‫זדוניות‬ ‫לידיים‬ ‫יגיע‬ ‫שלא‬ ‫כך‬ ‫המידע‬ ‫על‬ ‫לשמור‬ ‫חשוב‬ ‫הזו‬ ‫בקטגוריה‬
.‫המידע‬ ‫בעזרת‬ ‫נזק‬
‫הבאים‬ ‫באמצעים‬ ‫לדוגמא‬ ‫נוקטים‬ ‫ולכן‬
●‫לדוגמא‬ ‫ראו‬ http ‫במקום‬ https‫ב‬ ‫שימוש‬ - ‫לשרת‬ ‫הלקוח‬ ‫בין‬ ‫שעובר‬ ‫המידע‬ ‫הצפנת‬
●‫הססמא‬ ‫את‬ ‫להסתיר‬ ‫מנת‬ ‫על‬ hashing‫ב‬ ‫משתמש‬ Identity .‫בשרת‬ ‫הססמאות‬ ‫של‬ ‫הצפנה‬
natankrasney@gmail.com
16
‫בפרויקט‬ SSL‫ב‬ ‫שימוש‬
.‫לשרת‬ ‫הלקוח‬ ‫בין‬ ‫שעובר‬ ‫המידע‬ ‫את‬ ‫מצפין‬ http‫ב‬ ‫ולא‬ https‫ב‬ ‫שימוש‬
(Setting up SSL in the Project ‫על‬ ‫לחלק‬ ‫)גלול‬ ‫כאן‬ ‫בתיעוד‬ ‫מופיע‬ ‫טוב‬ ‫הסבר‬
‫לפונקציה‬ ‫להוסיף‬ ‫יש‬ https‫ב‬ ‫רק‬ ‫לאתר‬ ‫לגשת‬ ‫אפשר‬ ‫שיהיה‬ ‫לוודא‬ ‫מנת‬ ‫על‬
‫הבאה‬ ‫השורה‬ ‫את‬ RegisterGlobalFilters
filters.Add(new RequireHttpsAttribute());
natankrasney@gmail.com
17

More Related Content

More from Nathan Krasney

More from Nathan Krasney (17)

Introduction to Semantic ui-react
Introduction to Semantic ui-reactIntroduction to Semantic ui-react
Introduction to Semantic ui-react
 
React introduction
React introductionReact introduction
React introduction
 
Angular 2 jump start
Angular 2 jump startAngular 2 jump start
Angular 2 jump start
 
Angular 2 - Typescript
Angular 2  - TypescriptAngular 2  - Typescript
Angular 2 - Typescript
 
Angular 2 binding
Angular 2  bindingAngular 2  binding
Angular 2 binding
 
ADO.Net
ADO.NetADO.Net
ADO.Net
 
JQuery
JQueryJQuery
JQuery
 
ASP.net Web Pages
ASP.net Web PagesASP.net Web Pages
ASP.net Web Pages
 
ASP.net MVC
ASP.net MVCASP.net MVC
ASP.net MVC
 
CSS
CSSCSS
CSS
 
Javascript with json
Javascript with jsonJavascript with json
Javascript with json
 
javascript
javascriptjavascript
javascript
 
Javascript ajax
Javascript ajaxJavascript ajax
Javascript ajax
 
HTML5
HTML5 HTML5
HTML5
 
קורס אנדרואיד
קורס אנדרואידקורס אנדרואיד
קורס אנדרואיד
 
Lessons learned from 6 month project with india based software house
Lessons learned from 6 month project with india based software houseLessons learned from 6 month project with india based software house
Lessons learned from 6 month project with india based software house
 
Introduction to big data
Introduction to big data Introduction to big data
Introduction to big data
 

ASP.net Security

  • 2. ‫אתר‬ ‫אבטחת‬ : ‫הבאים‬ ‫המאפיינים‬ ‫את‬ ‫כוללת‬ ‫אתר‬ ‫אבטחת‬ Authentication Authorization Confidentiality natankrasney@gmail.com 2
  • 3. Authentication .‫וססמה‬ ‫משתמש‬ ‫שם‬ ‫באמצעות‬ ‫לדוגמא‬ ‫המשתמש‬ ‫זהות‬ ‫את‬ ‫מוודאים‬ ‫בו‬ ‫תהליך‬ ‫זהו‬ : ‫עבור‬ ‫לדוגמא‬ ‫חשוב‬ ‫התהליך‬ ●‫שלה‬ ‫באתר‬ ‫רשומים‬ ‫שנהיה‬ ‫בלי‬ ‫בה‬ ‫לקנות‬ ‫ניתן‬ ‫שלא‬ amazon ‫לדוגמא‬ ‫אינטרנטית‬ ‫חנות‬ ●facebook‫ב‬ ‫חשבון‬ ‫לפתוח‬ ‫מנת‬ ‫על‬ ●gmail‫ב‬ ‫מייל‬ ‫חשבון‬ ‫לקבל‬ ‫מנת‬ ‫על‬ ●‫ועוד‬ ASP.Net ‫ב‬ ‫להשתמש‬ ‫ואפשר‬ authentication‫ב‬ ‫לתמיכה‬ ‫עצמאית‬ ‫מערכת‬ ‫לממש‬ ‫אפשר‬ ‫כאן‬ ‫לדוגמא‬ ‫ראו‬ Identity natankrasney@gmail.com 3
  • 4. ASP.Net Identity ‫עם‬ ‫פרויקט‬ ‫יצירת‬ Individual User Accounts ‫מסוג‬ Authentication ‫ובחירת‬ (empty ‫)לא‬ MVC ‫פרויקט‬ ‫פתיחת‬ .‫גוגל‬ , ‫פייסבוק‬ ‫באמצעות‬ ‫לדוגמא‬ social login ‫וגם‬ userpassword ‫בעזרת‬ ‫גישה‬ ‫מאפשר‬ ‫וזה‬ .‫מהמשתמש‬ ‫קוד‬ ‫של‬ ‫צורך‬ ‫ללא‬ login , logout , register‫ל‬ ‫אפשרות‬ ‫נותן‬ ‫שנוצר‬ ‫הפרויקט‬ natankrasney@gmail.com 4
  • 5. ASP.Net Identity ‫של‬ ‫ארכיטקטורה‬ : ‫החשובות‬ ‫המחלקות‬ natankrasney@gmail.com 5 ‫מעל‬ ‫ממומש‬ Storage ‫בעזרת‬ SQL Server EntityFramework ‫שירותים‬ ”‫“שחקנים‬ IdentityRole
  • 6. ModelViewController - ASP.Net Identity : ‫אוטמטית‬ ‫יוצר‬ Identity ●AccountController , ManageController ●View ●Model natankrasney@gmail.com 6
  • 8. logged in ‫שאינו‬ ‫למשתמש‬ ‫גישה‬ ‫הגבלת‬ ‫בשם‬ attribute ‫בעזרת‬ ‫נעשה‬ ‫וזה‬ Login ‫שעשה‬ ‫למשתמש‬ ‫רק‬ (View‫ל‬ ‫גישה‬ ‫)ודרכה‬ action‫ל‬ ‫גישה‬ ‫להגביל‬ ‫ניתן‬ : [Authorize] ●action‫ל‬ ‫הגישה‬ ‫תותר‬ ‫אז‬ logged in ‫כבר‬ ‫והמשתמש‬ ‫במידה‬ ●action ‫יוחזר‬ ‫הוא‬ ‫אז‬ ‫תקינה‬ ‫בצורה‬ ‫יכנס‬ ‫הוא‬ ‫משם‬ ‫אם‬ .login ‫למסך‬ ‫יועבר‬ ‫הוא‬ ‫אז‬ logged in ‫אינו‬ ‫והמשתמש‬ ‫במידה‬ ‫להיכנס‬ ‫ניסה‬ ‫אליה‬ : ‫לממש‬ ‫אפשר‬ ●action‫ה‬ ‫ברמת‬ ●(‫במחלקה‬ ‫ים‬ - action ‫ה‬ ‫לכל‬ ‫שייושם‬ ‫)כך‬ controller‫ה‬ ‫ברמת‬ ●‫הוספת‬ ‫באמצעות‬ RegisterGlobalFilters ‫דרך‬ ‫האפליקציה‬ ‫ברמת‬ filters.Add(new AuthorizeAttribute()); login ‫עשה‬ ‫לא‬ ‫אם‬ ‫גם‬ action‫ל‬ ‫גישה‬ ‫מאפשר‬ [AllowAnonymous] ‫בשם‬ Attribute natankrasney@gmail.com 8 ‫עם‬ ‫בית‬ ‫בדף‬ ‫לדוגמא‬ ‫לשימוש‬ ‫נוח‬ ‫רשום‬ ‫משתמש‬ ‫שרק‬ ‫שרוצים‬ ‫לינק‬ .‫אליו‬ ‫להיכנס‬ ‫יוכל‬
  • 9. OAuth . ‫ועוד‬ google , linkedin, facebook ‫של‬ ‫בשמוש‬ authentication ‫פרוטוקול‬ ‫הוא‬ OAuth login ‫לעשות‬ ‫למשתמשים‬ ‫אפשר‬ OAuth OAuth - Open Authorization ‫הפעולות‬ ‫את‬ ‫מחייבת‬ ‫שלו‬ facebook‫ה‬ ‫חשבון‬ ‫באמצעות‬ ‫שלנו‬ ‫לאתר‬ Login ‫לעשות‬ ‫למשתמש‬ ‫אפשרות‬ ‫מתן‬ : ‫כמפתחים‬ ‫שלנו‬ ●facebook‫ב‬ ‫כאפליקציה‬ ‫שלנו‬ ‫האתר‬ ‫רישום‬ ●‫בעזרתו‬ user name ,password ‫מעיין‬ ‫זה‬ .‫שלנו‬ ‫האתר‬ ‫עבור‬ ‫מפייסבוק‬ secret ‫ו‬ api key ‫קבלת‬ ‫פייסבוק‬ ‫מול‬ ‫יתקשר‬ ‫שלנו‬ ‫האתר‬ ●‫דרך‬ ‫שלנו‬ ‫לאתר‬ login ‫לעשות‬ ‫ירצה‬ ‫שמשתמש‬ ‫ברגע‬ api key , secret‫ה‬ ‫את‬ ‫לפייסבוק‬ ‫יעביר‬ ‫האתר‬ ‫שלנו‬ ‫באתר‬ facebook ‫כפתור‬ ●https‫ב‬ ‫נשתמש‬ facebook‫ל‬ ‫שלנו‬ ‫האתר‬ ‫בין‬ ‫התקשורת‬ ‫עת‬ ‫להגן‬ ‫מנת‬ ‫על‬ natankrasney@gmail.com 9
  • 10. OAuth ‫ראשון‬ ‫שלב‬ ‫שלנו‬ ‫האתר‬ ‫דרך‬ facebook‫ל‬ ‫המשתמש‬ ‫של‬ login ‫לאחר‬ facebook‫ל‬ ‫פונה‬ ‫שלנו‬ ‫האתר‬ natankrasney@gmail.com 10 Our Web Site
  • 11. OAuth ‫שני‬ ‫שלב‬ .‫אומתה‬ ‫שלו‬ ‫שהזהות‬ ‫כך‬ ‫בפייסבוק‬ ‫חשבון‬ ‫באמת‬ ‫יש‬ ‫שלמשתמש‬ ‫מוכיח‬ ‫שחוזר‬ token‫ה‬ ‫אצלנו‬ ‫אותו‬ ‫שנרשום‬ ‫כך‬ ‫לאתר‬ ‫המשתמש‬ ‫את‬ ‫מחזירה‬ facebook natankrasney@gmail.com 11 Our Web Site
  • 12. Social Login ‫לאתר‬ Login ‫לבצע‬ ‫מנת‬ ‫על‬ ‫גוגל‬ , ‫לינקדאין‬ , ‫טוויטר‬ , ‫פייסבוק‬ ‫בחשבונות‬ ‫שימוש‬ ‫כאן‬ ‫ראו‬ ‫מ‬ ‫הפרויקט‬ ‫את‬ ‫לשדרג‬ ‫חשוב‬ ‫אבל‬ ‫מורכב‬ ‫אינו‬ ‫לפייסבוק‬ Login Microsoft.Owin.Security.Facebook version 3.0.1 ‫באמצעות‬ Install-Package Microsoft.Owin.Security.Facebook ‫דרך‬ Tools->NuGet Package Manager->Package Manager Console natankrasney@gmail.com 12
  • 13. email confirmation ‫בעזרת‬ ‫אתר‬ ‫אבטחת‬ ‫שיפור‬ email confirmation ‫לעשות‬ ‫איך‬ ‫שמסביר‬ ‫מאמר‬ ‫כאן‬ ‫ראה‬ : ‫הערה‬ ●: 6.3.4 ‫גרסה‬ ‫לקחת‬ ‫וצריך‬ ‫נכון‬ ‫אינו‬ ‫בלינק‬ ‫שמופיע‬ SendGrid Install-Package SendGrid -Version 6.3.4 email ‫ליישם‬ ‫מנת‬ ‫על‬ .ReadMe‫ה‬ ‫את‬ ‫לקרוא‬ ‫צריך‬ ‫אבל‬ ‫כאן‬ ‫עובדת‬ ‫גרסה‬ ‫יש‬ ‫השקף‬ ‫בראש‬ ‫בלינק‬ ‫שמוצג‬ ‫התהליך‬ ‫את‬ ‫לבצע‬ ‫צריך‬ ‫חדש‬ ‫בפרויקט‬confirmation natankrasney@gmail.com 13
  • 14. Authorization .‫בצועם‬ ‫ונאכף‬ ‫למשתמשים‬ (Roles) - ‫תפקידים‬ ‫מוגדרים‬ ‫בו‬ ‫תהליך‬ ‫משתמשים‬ ‫עבור‬ ‫תפקידים‬ ‫מספר‬ ‫להגדיר‬ ‫אפשר‬ ‫אינטרנטיות‬ ‫חנויות‬ ‫רשת‬ ‫של‬ ‫באתר‬ ‫לדוגמא‬ : ‫רשומים‬ ●‫ברשימת‬ ‫לצפות‬ ‫יכול‬ ‫לא‬ ‫אבל‬ ‫בעבר‬ ‫קנה‬ ‫שהוא‬ ‫במוצרים‬ ‫לצפות‬ ‫יכול‬ : ‫פשוט‬ ‫משתמש‬ ‫מוצרים‬ ‫להוסיף/לערוך/למחוק‬ ‫יכול‬ ‫ולא‬ ‫המשתמשים‬ ●‫חנות‬ ‫מנהל‬ ‫להגדיר‬ ‫יכול‬ ‫לא‬ ‫אבל‬ ‫מוצרים‬ ‫להוסיף/לערוך/למחוק‬ ‫לדוגמא‬ ‫יכול‬ - ‫חנות‬ ‫מנהל‬ ●‫חנות‬ ‫מנהל‬ ‫להגדיר‬ ‫בפרט‬ ‫הכל‬ ‫לבצע‬ ‫יכול‬ - ‫רשת‬ ‫מנהל‬ natankrasney@gmail.com 14
  • 15. Role ‫באמצעות‬ logged in ‫למשתמש‬ ‫גישה‬ ‫הגבלת‬ : ‫הבאה‬ ‫בצורה‬ ‫להכניס‬ ‫אפשר‬ role‫ה‬ ‫את‬ AspNetRoles ‫לטבלה‬ ‫ומכניסים‬ admin ‫לדוגמא‬ role ‫של‬ ‫שם‬ ‫מגדירים‬ ‫קודם‬ ‫משתמש‬ ‫של‬ id ‫לבין‬ ‫הזה‬ role ‫של‬ id ‫ה‬ ‫בין‬ AspNetUserRoles ‫בטבלה‬ ‫מקשרים‬ ‫כך‬ ‫אחר‬ AspNetUsers ‫בטבלה‬ ‫שמופיע‬ ‫דרכים‬ ‫בשתי‬ ‫להשתמש‬ ‫ניתן‬ ‫בקוד‬ ‫כך‬ ‫אחר‬ ● User.IsInRole(“admin”) ● [Authorize(Roles=”admin”)] natankrasney@gmail.com 15 ‫בקוד‬ ‫תנאי‬ ‫בתוך‬ View ‫או‬ controller‫ב‬ action ‫של‬ attribute‫כ‬ controller‫ב‬ ‫את‬ ‫לשים‬ ‫כדאי‬ ‫קובץ‬ ‫בתוך‬ admin constants
  • 16. Confidentiality ‫לגרום‬ ‫שיוכל‬ hacker ‫לדוגמא‬ ‫זדוניות‬ ‫לידיים‬ ‫יגיע‬ ‫שלא‬ ‫כך‬ ‫המידע‬ ‫על‬ ‫לשמור‬ ‫חשוב‬ ‫הזו‬ ‫בקטגוריה‬ .‫המידע‬ ‫בעזרת‬ ‫נזק‬ ‫הבאים‬ ‫באמצעים‬ ‫לדוגמא‬ ‫נוקטים‬ ‫ולכן‬ ●‫לדוגמא‬ ‫ראו‬ http ‫במקום‬ https‫ב‬ ‫שימוש‬ - ‫לשרת‬ ‫הלקוח‬ ‫בין‬ ‫שעובר‬ ‫המידע‬ ‫הצפנת‬ ●‫הססמא‬ ‫את‬ ‫להסתיר‬ ‫מנת‬ ‫על‬ hashing‫ב‬ ‫משתמש‬ Identity .‫בשרת‬ ‫הססמאות‬ ‫של‬ ‫הצפנה‬ natankrasney@gmail.com 16
  • 17. ‫בפרויקט‬ SSL‫ב‬ ‫שימוש‬ .‫לשרת‬ ‫הלקוח‬ ‫בין‬ ‫שעובר‬ ‫המידע‬ ‫את‬ ‫מצפין‬ http‫ב‬ ‫ולא‬ https‫ב‬ ‫שימוש‬ (Setting up SSL in the Project ‫על‬ ‫לחלק‬ ‫)גלול‬ ‫כאן‬ ‫בתיעוד‬ ‫מופיע‬ ‫טוב‬ ‫הסבר‬ ‫לפונקציה‬ ‫להוסיף‬ ‫יש‬ https‫ב‬ ‫רק‬ ‫לאתר‬ ‫לגשת‬ ‫אפשר‬ ‫שיהיה‬ ‫לוודא‬ ‫מנת‬ ‫על‬ ‫הבאה‬ ‫השורה‬ ‫את‬ RegisterGlobalFilters filters.Add(new RequireHttpsAttribute()); natankrasney@gmail.com 17