1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 9: Thiết kê và lập trình web với ASP.NET - Bảo mật ứng dụng web ASP.NET

13 500 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 910,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

Thi t k & L p trình Web 2

Bài 9

B o

B o m t m t ng ng d ng d ng Web ASP.NET Web ASP.NET

Ths Tr n Th Bích H nh

Khoa CNTT

© 2009 Khoa Công ngh thông tin

N i

N i

 M t s khái ni m v B o m t

 Các c p đ b o m t trong m t ng d ng ASP.NET

 ng nh p, Qu n lý thành viên, phân quy n trong ASP.NET

© 2009 Khoa CNTT - HKHTN

2

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

N i

N i

 M t s khái ni m v B o m t

 Các c p đ b o m t trong m t ng d ng ASP.NET

 ng nh p, Qu n lý thành viên, phân quy n trong

ASP.NET

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

M t

M t s s Khái Khái ni m ni m B o B o m t m t

M t

M t s s Khái Khái ni m ni m B o B o m t m t

Authentication – Ch ng th c

– Qui trình ch ng th c ng i dùng – Th ng yêu c u ng i dùng nh p Tên đ ng nh p & m t

kh u

Authorization – C p quy n

– Qui trình quy t đ nh user đã ch ng th c đ c phép truy c p các tài nguyên nh t đ nh

các tài nguyên nh t đ nh – Th ng c p quy n d a trên Lo i ng i dùng (role-based

authorization)

Trang 2

N i

N i

 M t s khái ni m v B o m t

 Các c p đ b o m t trong m t ng d ng ASP.NET

 ng nh p, Qu n lý thành viên, phân quy n trong

ASP.NET

© 2009 Khoa CNTT - HKHTN

5

Các Các c p c p đđ b o b o m t m t trong trong ASP NET ASP NET Các

Các c p c p đđ b o b o m t m t trong trong ASP.NET ASP.NET

 IIS

 ASP.NET

© 2009 Khoa CNTT - HKHTN

6

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

IIS Security

 Là c p đ b o m t đ u tiên đ c th c hi n khi có yêu c u

đ n webpage (request)

đ n webpage (request).

 Các b c ki m tra:

– IIS ki m tra đ a ch IP c a request có đ c truy c p vào

domain hay không

– Ch ng th c ng C g t c g i dùng (n u c n) dù g ( u c )

– N u thành công chuy n request qua ASP.NET

– Ng g c l i thông báo cho ng g g i dùng bi t không g g đ c phép p p

truy c p

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

IIS Security

Trang 3

Các hình hình th c th c ch ng ch ng th c th c trong trong IIS IIS

Các

Các hình hình th c th c ch ng ch ng th c th c trong trong IIS IIS

 Anonymous

 Basic

 Digest

 Integrated Windows Authentication

 Certificate

© 2009 Khoa CNTT - HKHTN

9

IIS Anonymous Authentication

 M c đ nh IIS cho phép anonymous truy c p vào m t ng

d ng Web

© 2009 Khoa CNTT - HKHTN

10

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

IIS Basic & Digest Authentication

– Yêu c u user nh p username & password

– Username & password đ c mã hóa và truy n qua HTTP header

– Username & password Username & password đ c ki m tra kh p v i tài kho n Windows đ c ki m tra kh p v i tài kho n Windows

trên server

– Ch nên s d ng v i HTTPS

Digest

Password đ c x lý v i hàm hash và g i lên server

– Password đ c x lý v i hàm hash và g i lên server

– Server th c hi n cùng x lý v i hàm hash v i password trên server

và ki m tra v i giá tr nh n đ c

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

IIS Integrated Windows Authentication

 IIS ch ng th c user v i tài kho n user trên Windows

 Khi s d ng trong m ng intranet, Windows Authentication cho phép IIS quy t đ nh yêu c u c a ng i dùng d a vào

vi c đ ng nh p c a user trên Windows

vi c đ ng nh p c a user trên Windows

Trang 4

IIS Certificate Authentication

Certificate

– S d ng các certificate c a user đ th c hi n vi c ch ng

th c

– Trong mã hóa khóa công khai (public-key cryptography) m t

– Trong mã hóa khóa công khai (public-key cryptography) m t

certificate s d ng m t ch ký đi n t (digital signature) và

m t khóa công khai đi kèm v i đ nh danh ng i dùng

© 2009 Khoa CNTT - HKHTN

13

ASP NET Security ASP.NET Security

© 2009 Khoa CNTT - HKHTN

14

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

Impersonation

 M c đ nh Impersonation là disabled

– T t c ASP.NET request đ c th c thi b i đ nh danh m c

đ nh dành cho cho các ng d ng ASP.NET

• Tài kho n ASPNET t Tài kho n ASPNET t đ ng đ c t o khi cài NET Framework đ ng đ c t o khi cài NET Framework

• Tài kho n NETWORK SERVICE đ c đ nh ngh a s n trong

Windows Server 2003 và có quy n truy c p nh tài kho n

ASPNET

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

Impersonation

 Khi thi t l p impersonation là enabled cho m t ng d ng Web ng d ng s đ c th c thi d i đ nh danh đ c ch Web, ng d ng s đ c th c thi d i đ nh danh đ c ch

đ nh b i m t security token truy n t IIS

 S S d ng impersonation khi d ng impersonation khi

– ng d ng web d a vào IIS đ ch ng th c user

– Server cho phép host nhi u p p ng d ng t g g nhi u khách hàng khác g nhau, cung c p cho m i ng d ng web m t tài kho n Windows riêng bi t đ ng n không cho ng d ng này truy c p vào tài nguyên

c a ng d ng khác

// Web.Config

<authentication mode="Windows" />

<identity impersonate="true" />

Trang 5

Code Access Security

 Tính n ng đ c h tr trong CLR

 Qui đ nh nh ng ràng bu c cho phép các lo i mã l nh trong assembly

đ c quy n th c thi

Trust level là m t t p các lu t p đ nh ngh a các class trong g g

// Web.config

<system.web>

<trust level="Medium"/>

</system.web>

© 2009 Khoa CNTT - HKHTN

17

Trust Levels

Full

– T t c NET class đ c phép s d ng & th c thi

High

– Không Không đ c s d ng unmanaged code enterprise services đ c s d ng unmanaged code, enterprise services, reflection

– ng d ng ch đ c phép truy xu t trong c u trúc th m c c a nó

Low

– Read-only application

© 2009 Khoa CNTT - HKHTN

18

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

ASP NET Authentication

ASP.NET Authentication

None

ch ng th c

ch ng th c trong c u hình c a

IIS

qua form đ ng nh p

c a Microsoft Passport

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

Forms Authentication

Trang 6

Forms Authentication

© 2009 Khoa CNTT - HKHTN

21

Forms Authentication

Cookieless (UseDefaultProfile)

Qui đ nh vi c ch ng th c l u trong cookie:

UseCookies, UseUri (nhúng ticket trong URL), và AutoDetect

thành công

All (hash & encrypte), Encryption, None, Validation (check ticket có b s a đ i)

requireSSL (false) q ( ) Yêu c u s d ng k t n i SSL khi truy n d g y li u

© 2009 Khoa CNTT - HKHTN

22

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

Forms Authentication

enableCrossAppRedirects

(false)

ch ng th c

slidingExpiration (false) Reset l i th i gian expire c a cookie sau l n truy

i

c p cu i

// Web.Config

<authentication mode="Forms" >

<forms loginUrl="Login.aspx" timeout="86400"

slidingExpiration="true“ />

</authentication>

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

N i

N i

 M t s khái ni m v B o m t

 Các c p đ b o m t trong m t ng d ng ASP.NET

 ng nh p, Qu n lý thành viên, phân quy n trong ASP.NET

Trang 7

Membership Provider

Membership Provider

 Là t p các l p c a NET cho phép developer x lý các

ch c n ng qu n lý ch ng th c ng i dùng

ch c n ng qu n lý ch ng th c ng i dùng

– Thêm ng i dùng m i

– L u thông tin ng L u thông tin ng i dùng trong CSDL i dùng trong CSDL

– Ch ng th c ng i dùng

– Phân quy n ng i dùng

– Qu n lý m t kh u (t o, s a, reset)

 Membership Provider m c đ nh là SqlMembershipProvider

– T o CSDL aspnetdb trong SQLExpress và l u trong th m c

App_Data

© 2009 Khoa CNTT - HKHTN

25

Role Management Provider

 Là t p các l p c a NET cho phép developer x lý các

ch c n ng qu n lý c p quy n ng i dùng

ch c n ng qu n lý c p quy n ng i dùng

– Thêm role m i

– Ch Ch đ nh ng i dùng vào các roles đ nh ng i dùng vào các roles

– Phân quy n cho phép ng i dùng truy c p vào tài nguyên web

 Role Management Provider m c g đ nh là SqlRoleProvider q

© 2009 Khoa CNTT - HKHTN

26

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

ASP NET Login Controls

 CreateUserWizard

 Login

 LoginName & LoginStatus

 LoginView

 ChangePassword g

 PasswordRecovery

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

CreateUserWizard

CreateUserWizard

Trang 8

Login Control

© 2009 Khoa CNTT - HKHTN

29

LoginName LoginName and and LoginStatus LoginStatus Controls Controls LoginName

LoginName and and LoginStatus LoginStatus Controls Controls

© 2009 Khoa CNTT - HKHTN

30

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

LoginView

LoginView

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

ChangePassword

ChangePassword

Trang 9

PasswordRecovery

© 2009 Khoa CNTT - HKHTN

33

C

C u u hì hình nh Mail Server (SMTP) Mail Server (SMTP) C

C u u hì hình nh Mail Server (SMTP) Mail Server (SMTP)

© 2009 Khoa CNTT - HKHTN

34

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

C

C u u hì hình nh Mail Server (SMTP) Mail Server (SMTP)

C

C u u hì hình nh Mail Server (SMTP) Mail Server (SMTP)

// Web.Config

<configuration>

<system.net>

<mailSettings>

<smtp deliveryMethod="Network" from=“yourmail@gmail.com">

<network

host="smtp.gmail.com" port="465"

userName=“yourmail@gmail.com" password=“your password"

defaultCredentials="true"/>

</smtp>

/ ilS i

</mailSettings>

</system.net>

</configuration>

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

X ly ly G G ii mail mail ll y y ll ii Password Password X

X ly ly G G ii mail mail ll y y ll ii Password Password

using System.Net;

using System.Net.Mail;

protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e) {

try {

SmtpClient smtpSender = new SmtpClient(“ smtp server ”, “ smtp port ”); smtpSender.DeliveryMethod = SmtpDeliveryMethod.Network;

smtpSender.Credentials = new NetworkCredential(“ username ”, “ password ”); smtpSender.EnableSsl = true;

smtpSender.Send(e.Message);

} catch (Exception ex) {

Response.Write("There was a problem sending the email " + ex); }

e.Cancel = true;

} }

Trang 10

L y y thông thông tin tin c c u u hì hình nh Mail Server Mail Server trong trong Web config Web config

L

L y y thông thông tin tin c c u u hì hình nh Mail Server Mail Server trong trong Web.config Web.config

using System.Web.Configuration;

using System Net Configuration;

Configuration config =

WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);

MailSettingsSectionGroup settings =

(MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

// settings.Smtp.Network.Host

// settings.Smtp.Network.Port

// settings.Smtp.Network.Username

// settings.Smtp.Network.Password

© 2009 Khoa CNTT - HKHTN

37

X ly ly ll ii G G ii mail mail X

X ly ly ll ii G G ii mail mail

protected void PasswordRecovery1_SendMailError(object sender, SendMailErrorEventArgs e)

{

e.Handled = true;

© 2009 Khoa CNTT - HKHTN

PasswordRecovery1.SuccessText = e.Exception.Message;

}

38

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

 B c 1: Th c thi ASP.NET Sql Server Registration Tool

đ t o CSDL

– WINDOWS\Microsoft.NET\Framework\2.0.xxxx\

aspnet regsql.exe p _ g q

 B c 2: C u hình ConnectionString Membership

 B c 2: C u hình ConnectionString, Membership

Provider & Role Provider trong Web.Config

 B c 3: S d ng Web Site Administration Tool đ c u

hình phân quy n p q y

Menu > Website > ASP.NET Configuration

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

 B c 1

 http://www codedigest com/FAQ/16-How-to-Configure-ASP-Net-Membership- http://www.codedigest.com/FAQ/16 How to Configure ASP Net Membership Providers-to-Use-Our-Own-Database-.aspx

Trang 11

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

 B c 2

<! S t th ti t i f SQL S >

<! Set the connection string for SQL Server >

<connectionStrings>

<clear />

<add name=" SqlConn "

connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog= Test ;"

/>

</connectionStrings>

© 2009 Khoa CNTT - HKHTN

 http://help.maximumasp.com/SmarterTicket/Customer/KBArticle.aspx?articleid=878

41

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

 B c 2 (tt)

< t b>

<system.web>

<! Configure the Sql Membership Provider >

<membership defaultProvider=“ MySqlMembershipProvider " userIsOnlineTimeWindow="15">

<providers>

<clear />

<add name="MySqlMembershipProvider"

type="System Web Security SqlMembershipProvider"

type= System.Web.Security.SqlMembershipProvider connectionStringName=" SqlConn "

applicationName="/"

enablePasswordRetrieval="false"

enablePasswordReset="false"

requiresQuestionAndAnswer="false"

requiresUniqueEmail="true"

passwordFormat="Hashed" />

© 2009 Khoa CNTT - HKHTN

passwordFormat Hashed /

</providers>

</membership>

</system.web>

42

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

 B c 2 (tt)

< t b>

<system.web>

<! Configure the Sql Role Provider >

<roleManager enabled ="true"

defaultProvider =“ MySqlRoleProvider " >

<providers>

<clear />

<add name =“MySqlRoleProvider"

type="System Web Security SqlRoleProvider"

type= System.Web.Security.SqlRoleProvider

connectionStringName=" SqlConn "

applicationName="/"/>

</providers>

</roleManager>

</system.web>

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

C u

C u hình hình s s d ng d ng Database Database riêng riêng cho cho Membership & Role Membership & Role

 B c 3: Website Administration Tool

Trang 12

Membership API

Membership.Method

CreateUser

DeleteUser

FindUsersByEmail

protected void btnLogin_Click(object s, EventArgs e) {

string usr = txtUser.Text;

FindUsersByName

GeneratePassword

GetAllUsers

g string pwd = txtPassword.Text;

// Use the membership system to authenticate user

if ( Membership.ValidateUser(usr, pwd) )

FormsAuthentication RedirectFromLoginPage(usr true);

GetAllUsers

GetNumberOfUsersOnline

GetUser

FormsAuthentication.RedirectFromLoginPage(usr,true);

else labError.Text = "User not found, try again";

}

GetUserNameByEmail

UpdateUser

ValidateUser

© 2009 Khoa CNTT - HKHTN

45

MembershipUser MembershipUser API API MembershipUser MembershipUser API API

IsOnline LastActivityDate LastLockoutDate LastLoginDate LastPasswordChangedDate PasswordQuestion

© 2009 Khoa CNTT - HKHTN

UserName

46

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

Ví d - Qu n lý danh sách User trong GridView

<asp:ObjectDataSource ID=" odsUsers "

runat="server"

<asp:GridView ID="grdUsers“ runat="server"

DataSourceID =" odsUsers "

TypeName="System.Web.Security.Membership"

SelectMethod="GetAllUsers"

DeleteMethod="DeleteUser" >

<DeleteParameters>

AutoGenerateColumns="false"

AutoGenerateDeleteButton="true"

AutoGenerateSelectButton="true"

CellPadding="5"

<asp:ControlParameter

ControlID="grdUsers" Type="string"

PropertyName="SelectedDataKey.Values[0]"

CellPadding= 5

DataKeyNames=“UserName” >

<Columns>

<asp:BoundField HeaderText="Name"

D t Fi ld "U N " />

Name="username" />

</DeleteParameters>

</asp:ObjectDataSource>

DataField="UserName" />

<asp:BoundField HeaderText="Email"

DataField="Email"/>

<asp:BoundField HeaderText="Create Date“ DataField="CreationDate" />

Date DataField CreationDate /

<asp:BoundField HeaderText="Last Login“ DataField="LastLoginDate" />

</Columns>

</asp:GridView>

</asp:GridView>

Thi t k & L p trình Web 2 – Bài 9: B o m t ng d ng Web ASP.NET

Roles API

IsUserInRole

Ngày đăng: 09/05/2014, 14:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm