Bài giảng Lập trình Web - Bài 9: Bảo mật Website
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Web - Bài 9: Bảo mật Website", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_lap_trinh_web_bai_9_bao_mat_website.ppt
Nội dung text: Bài giảng Lập trình Web - Bài 9: Bảo mật Website
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC a - Tek Ngành lập trình - CSDL 1
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mục tiêu • Hiểu được cơ chế bảo mật Web site • Sử dụng 2 điều khiển trong nhóm Login a - Tek Ngành lập trình - CSDL 2
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nội dung 1. Tổng quan về aspnetdb Database 2. Các nguyên tắc bảo mật của ASP.NET 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles a - Tek Ngành lập trình - CSDL 3
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tổng quan về aspnetdb Database • Giới thiệu • Tạo aspnetdb Database a - Tek Ngành lập trình - CSDL 4
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tổng quan về aspnetdb Database • Giới thiệu - CSDL aspnetdb dùng để quản lý các user profiles, roles, membership và các thông tin cá nhân khác - Áp dụng cho ASP.Net 2.0 Web Application - Không được tạo ra khi cài đặt SQL Server 2005 Enterprise/ Express Edition - Được tạo tự động khi sử dụng công cụ WAT và lưu trữ trong thư mục App_Data a - Tek Ngành lập trình - CSDL 5
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tổng quan về aspnetdb Database • Tạo aspnetdb Database - Tạo thủ công: • Start Programs Microsoft Visual Studio 2005 Visual Studio Tools Visual Studio 2005 Command Prompt • Gõ lệnh aspnetdb_regsql Minh họa a - Tek Ngành lập trình - CSDL 6
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nội dung 1. Tổng quan về Database aspnetdb 2. Các nguyên tắc bảo mật của ASP.Net 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles a - Tek Ngành lập trình - CSDL 7
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các nguyên tắc bảo mật của ASP.Net • Các khái niệm bảo mật • Mô hình bảo mật ASP.NET • Các chiến lượt bảo mật • Chứng thực website a - Tek Ngành lập trình - CSDL 8
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Các khái niệm bảo mật - Authentication: xác định user là ai - Authorization: xác định quyền hạn của user - Impersonation: là option tùy chọn, dùng Code để xử lý giới hạn truy xuất a - Tek Ngành lập trình - CSDL 9
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Mô hình bảo mật ASP.Net - IIS xác thực người dùng - Nếu thành công, nó chuyển yêu cầu đến ASP.Net với thông tin đã được chứng thực - Nếu ASP.Net xác thực thành công, nó cho phép gởi yêu cầu đến các trang .aspx hoặc web services, - Khi ASP.Net Code yêu cầu tài nguyên (mở file hoặc connect đến CSDL), hệ điều hành sẽ tiến hành kiểm tra a - Tek Ngành lập trình - CSDL 10
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM Web Clients TRUNG TÂM TIN HỌC Có chấp nhận địa chỉ IP và Domain ? IIS Truy xuất bị từ chối Yes No IIS xác thực thành công ? Yes No Asp.Net xác thực thành công ? ASP.Net No Yes Có khai báo Impersonation ? No Yes Giả sử đã Impersonated Sử dụng tài khoản được cấu hình Cho phép các tài nguyên khác ? No Yes Truy xuất được phép a - Tek Ngành lập trình - CSDL 11
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Các chiến lượt bảo mật 1. Cho phép các user nặc danh (anonymous users) nhưng sử dụng chứng thực forms để bảo mật từng phần trong Website. Nếu có user đăng nhập thì nó sẽ tiến hành xác thực user đó 2. Cấm các user nặc danh và sử dụng chứng thực của IIS để bắt buộc user đăng nhập theo chứng thực Windows, Basic hoặc Digest (yêu cầu user có account trên server) Thích hợp với mạng Intranet a - Tek Ngành lập trình - CSDL 12
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Chứng thực website - Windows Authentication: • IIS sẽ xác thực user dựa trên Windows account • Ưu điểm: trong suốt với người dùng, và có thể dùng code để kiểm tra thông tin tài khoản a - Tek Ngành lập trình - CSDL 13
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Chứng thực website - Windows Authentication: • Khai báo: Ø Cài đặt chế độ chứng thực là Windows trong tập tin Web.config Ø Tắt quyền truy xuất user nặc danh (trong IIS hoặc trong tập tin Web.config) Ø Cấu hình Windows account trên Web server (nếu chưa có ) a - Tek Ngành lập trình - CSDL 14
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Chứng thực website - Windows Authentication: • Khai báo: minh hoạ khai báo chứng thực Minh họa a - Tek Ngành lập trình - CSDL 15
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Chứng thực website - Windows Authentication: • Khai báo: minh hoạ cấp quyền Ø Khai báo trong tập tin Web.config Ø Hoặc, trong IIS: chọn thư mục ảo, nhấn phím phải chuột chọn Properties Minh họa a - Tek Ngành lập trình - CSDL 16
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật a - Tek Ngành lập trình - CSDL 17
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Các nguyên tắc bảo mật • Chứng thực website - Forms Authentication: • Xác thực user dựa trên CSDL aspnetdb • Khai báo: Ø Cài đặt chế độ chứng thực là Forms trong tập tin Web.config Ø Giới hạn quyền truy xuất tập tin/thư mục của các user nặc danh Ø Tạo trang Đăng nhập - Login a - Tek Ngành lập trình - CSDL 18
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles a - Tek Ngành lập trình - CSDL 19
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Giới thiệu công cụ WAT • Giới thiệu • Tạo User và Role • Cấp quyền truy xuất thư mục, tập tin cho User, Role a - Tek Ngành lập trình - CSDL 20
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Giới thiệu công cụ WAT • Giới thiệu - WAT – Website Administration Tool – dùng để xem và cấu hình website - Các thao tác trên WAT sẽ làm thay đổi tập tin Web.config - Thao tác: trên thực đơn, chọn Website ASP.NET Configuration a - Tek Ngành lập trình - CSDL 21
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Giới thiệu công cụ WAT • Tạo User và Role • Cấp quyền truy xuất thư mục, tập tin cho user và Role Minh họa a - Tek Ngành lập trình - CSDL 22
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles a - Tek Ngành lập trình - CSDL 23
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tạo trang Đăng nhập • Giới thiệu và thao tác tạo • Giới thiệu điều khiển Login a - Tek Ngành lập trình - CSDL 24
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Giới thiệu và thao tác tạo - Áp dụng cho Forms Authentication - Dùng để chứng thực người dùng (kiểm tra userName và password) - Khai báo trong tập Web.config: a - Tek Ngành lập trình - CSDL 25
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Giới thiệu và thao tác tạo - Cấp quyền truy xuất các tập tin/thư mục: dùng WAT hoặc cập nhật trực tiếp Web.config - Tạo trang Login.aspx tại thư mục gốc của ứng dụng • Dùng điều khiển Login thiết kế chức năng đăng nhập Minh họa a - Tek Ngành lập trình - CSDL 26
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Điều khiển Login - Kết hợp với điều khiển Validator để kiểm tra ô nhập user name và password - Tự động kiểm tra thông tin đăng nhập - Nếu chọn thì thông tin đăng nhập đựơc lưu trữ xuống cookie - Nếu đăng nhập thành công thì mặc định chuyển đến trang Default.aspx ở thư mục gốc a - Tek Ngành lập trình - CSDL 27
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Điều khiển Login - Thuộc tính: đa số dùng để thay đổi giao diện của điều khiển Minh họa a - Tek Ngành lập trình - CSDL 28
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Điều khiển Login - Sự kiện • LoggingIn : xảy ra trước khi user được xác thực • LoggedIn : sau khi user được xác thực • LoginError : khi đăng nhập không thành công • Authenticate : chủ động xác thực user tùy theo code đựơc viết, điều khiển không tự động thực hiện Minh họa a - Tek Ngành lập trình - CSDL 29
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Tạo nút Sign Out: - Sử dụng lớp FormsAuthentication và phương thức SignOut Minh họa a - Tek Ngành lập trình - CSDL 30
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đăng nhập • Xem thông tin user: - Sử dụng thuộc tính User.Identity của Page • Name: tên user • AuthenticationType: kiểu chứng thực • IsAuthenticated: đã được chứng thực chưa - Phương thức User.IsInRole(“Tên Role”): kiểm tra user có trong role không Minh họa a - Tek Ngành lập trình - CSDL 31
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles a - Tek Ngành lập trình - CSDL 32
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tạo trang Đổi mật khẩu • Giới thiệu • Giới thiệu điều khiển ChangePassword a - Tek Ngành lập trình - CSDL 33
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đổi mật khẩu • Giới thiệu - Áp dụng cho Forms Authentication - Dùng để thay đổi mật khẩu - Sử dụng điều khiển ChangePassword a - Tek Ngành lập trình - CSDL 34
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Tạo trang Đổi mật khẩu • Điều khiển ChangePassword - Các thuộc tính và sự kiện tương tự điều khiển Login a - Tek Ngành lập trình - CSDL 35
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles a - Tek Ngành lập trình - CSDL 36
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Profiles • Giới thiệu • Khai báo Profiles • Sử dụng Profile a - Tek Ngành lập trình - CSDL 37
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Profiles • Giới thiệu - Cho phép lưu trữ dữ liệu cụ thể của người dùng đã đựơc chứng thực - Tương tự Session, chỉ khác là dữ liệu profile không bị mất đi khi Session hết hạn - Thuộc namespace System.Web.Profile a - Tek Ngành lập trình - CSDL 38
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Profiles • Khai báo Profiles - Khai báo các thuộc tính cần lưu trữ trong Web.config User_Name,FullName, Birthday là thông tin lưu trữ a - Tek Ngành lập trình - CSDL 39
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Profiles • Sử dụng Profiles - Truy xuất thuộc tính Profile. - Cập nhật thuộc tính vào table Profile Profile. Save(); a - Tek Ngành lập trình - CSDL 40
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Profiles • Sử dụng Profiles Ví dụ: cập nhật Profile.User_Name = User_name.Text; Profile.FullName = Full_name.Text; Profile.Birthday = DateTime.Parse(Birth_day.Text); Profile.Save(); a - Tek Ngành lập trình - CSDL 41
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website Profiles • Sử dụng Profiles - Xem danh sách Profile ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All) Ví dụ: .DataSource =ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All); .DataBind(); a - Tek Ngành lập trình - CSDL 42
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 9: Bảo mật Website HẾT a - Tek Ngành lập trình - CSDL 43