SlideShare a Scribd company logo
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

PDF
להתיידד עם רשת האינטרנט ופייסבוק
PPT
פייסבוק להורים
PDF
ESET_Cybersecurity_Awareness_Training.pdf
PDF
טיפים מעשיים לשמירה על הפרטיות בפייסבוק
PDF
שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
PDF
UXI Live 2011 - טאב, אפליקציה והח' הקדמון
PPT
Amazing Digital Projects 14
ODP
פייסבוק לעסקים -מצגת מתוך סדנת לב השרון
להתיידד עם רשת האינטרנט ופייסבוק
פייסבוק להורים
ESET_Cybersecurity_Awareness_Training.pdf
טיפים מעשיים לשמירה על הפרטיות בפייסבוק
שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
UXI Live 2011 - טאב, אפליקציה והח' הקדמון
Amazing Digital Projects 14
פייסבוק לעסקים -מצגת מתוך סדנת לב השרון

Similar to ASP.net Security (20)

PDF
האינטרנט - קצת יותר מגוגל
PPT
Effective Social Media Presence
PPT
Effective Social Media Presence
PPT
Effective Social Media Presence
PDF
מכשירים חדשים - עתיד הווב הנייד
PPT
הדרכת פייסבוק מתחילים
PPT
הדרכת פייסבוק מתחילים
PDF
מדריך iframe לפייסבוק
PPT
Amazing Digital Projects 8
PDF
ASP.net Web Pages
PDF
רשתות חברתיות - הזנב הארוך
PDF
Ciso back to the future - network vulnerabilities
PDF
הגדרות פרטיות בפייסבוק
PDF
מצגת למשרד נובמבר לינקדאין אנידור חקק
PDF
שרון אנגל: מבוא למוניטיזצייה. VisionCamp 2012
PDF
PPTX
Copy Of Social Network Pr01 He
PDF
עסקים קטנים, כסף גדול: שיווק באינטרנט
PDF
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
האינטרנט - קצת יותר מגוגל
Effective Social Media Presence
Effective Social Media Presence
Effective Social Media Presence
מכשירים חדשים - עתיד הווב הנייד
הדרכת פייסבוק מתחילים
הדרכת פייסבוק מתחילים
מדריך iframe לפייסבוק
Amazing Digital Projects 8
ASP.net Web Pages
רשתות חברתיות - הזנב הארוך
Ciso back to the future - network vulnerabilities
הגדרות פרטיות בפייסבוק
מצגת למשרד נובמבר לינקדאין אנידור חקק
שרון אנגל: מבוא למוניטיזצייה. VisionCamp 2012
Copy Of Social Network Pr01 He
עסקים קטנים, כסף גדול: שיווק באינטרנט
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
Ad

More from Nathan Krasney (18)

PDF
Introduction to Semantic ui-react
PDF
React introduction
PDF
Angular 2 jump start
PDF
Angular 2 introduction
PDF
Angular 2 - Typescript
PDF
Angular 2 binding
PDF
PDF
PDF
ASP.net MVC
PDF
Javascript with json
PDF
javascript
PDF
Javascript ajax
PDF
PDF
PPTX
קורס אנדרואיד
PPTX
Lessons learned from 6 month project with india based software house
PPTX
Introduction to big data
Introduction to Semantic ui-react
React introduction
Angular 2 jump start
Angular 2 introduction
Angular 2 - Typescript
Angular 2 binding
ASP.net MVC
Javascript with json
javascript
Javascript ajax
קורס אנדרואיד
Lessons learned from 6 month project with india based software house
Introduction to big data
Ad

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