Ngôn ngữ ASP.NET - Tổng quan bảo mật

Giới thiệu bảo mật Website 

Bảo mật rất quan trọng cho việc phát triển và bảo trì các ứng dụng Web. Mỗi WebSite có các thiết lập bảo mật khác nhau. Có ba tính năng bảo mật cơ bản cho các ứng dụng ASP.Net : 
    

         
Authentication : được dùng để xác nhận định dannh người dùng trước khi cho phép hoặc từ chối các yêu cầu . Thí dụ : trong ứng dụng e-mail , tên người dùng và mật khẩu phải phù hợp khi so sánh các thông này trong cơ sở dữ liệu.
Authorization : chỉ những người dùng có sự định danh hợp lệ mới có thể truy cập đền các tài nguyên được chỉ định trong ứng dụng. Thí dụ : sinh viên không thể truy cập được thông tin đề thi, điểm thi mà chỉ có giáo viên hoặc người quản trị mới có thể truy cập.
Impersionation : ứng dụng ASP.Net xử lý các hoạt động đại diện cho người dùng mà được xác nhận bằng IIS ( Internet Information Services ) . IIS truyền dấu hiệu xác nhận đến ứng dụng ASP.Net. Sau đó ứng dụng ASP.Net sử dụng dấu hiệu này và hoạt động dưới sự định danh của người dùng đã xác nhận.

Form-Based Authentication 
Sử dụng Forms Authentication Provider . Trong forms-base authentication định dạng HTML thường sử dụng tập hợp các thông tin xác nhận : tên đăng nhập , mật khẩu. Ứng dụng phải viết các lệnh để xác nhận các thông tin được cung cấp phải phù hợp trong cơ sở dữ liệu. Những thông tin đã được xác nhận của người dùng có thể được lưu trong một biến cookie trong suốt phiên làm việc. 

Passport Authentication
Người dùng được xác nhận bằng các sử dụng Passport Service được cung cấp bởi Microsoft . Tuy nhiên , khi sử dụng loại xác nhận này, chúng ta phải được đăng ký với Microsoft‟s Passport Service. Passport server sử dụng cơ chế mã hóa cookie để định danh và xác nhận tính hợp lệ của người dùng.

Windows Authentication
Windows authentication là cách xác nhận mặc định của ASP.Net. Loại xác nhận này dựa vào các windows account của người dùng. Windows authentication trong ASP.Net sử dụng II để có thể cấu hình cho phép chỉ các người dùng trong Windows domain đăng nhập vào ứng dụng.

Có 4 tùy chọn được thiết lập trên IIS :

  • Anonymous Authentication : cho phép bất kỳ người dùng truy cập đến ứng dụng ASP.Net
  • Basic Authentication : yêu cầu sử dụng tên người dùng và mật khẩu của Windows để kết nối đến ứng dụng. Tuy nhiên mật khẩu được truyền trong dạng text đơn giản , do đó loại xác nhận này không được an toàn .
  • Digest Authentication : tương tự như Basic Authentication. Tuy nhiên mật khẩu được hashed sau đó mới được truyền đi ( gia tăng sự an toàn ).
  • Integrated Windows Authentication : sử dụng Kerberos hoặc giao thức change/response để xác nhận người dùng.

Trong ASP.NET hỗ trợ các control bảo mật:

Bạn có thể sử dụng các điều khiển Login của ASP.NET để xây dựng các hệ thống đăng ký người sử dụng cho wensite của mình, Bạn có thể sử dụng các Login Control để tạo form đăng nhập, đăng ký, thay đổi mật khẩu hay ghi nhớ mật khẩu trên Form.
Bao gồm các điều khiển:

  • Login: Cho phép hiển thị Form đăng nhập người sử dụng.
  • CreateUserWizard: Cho phép hiển thị Form đăng ký người sử dụng.
  • LoginStatus: Hiển thị trạng thái Login hay Logout phụ thuộc vào trạng thái kiểm chứng người sử dụng.
  • LoginName: Hiển thị tên người đăng ký hiện tại.
  • ChangePassword: Hiển thị Form cho phép người sử dụng thay đổi mật khẩu.
  • PasswordRecovery: Cho phép người sử dụng khôi phục password, password này sẽ được gửi vào mail cho người sử dụng.
  • LoginView: hiển thị các nội dung khác nhau tới mỗi người sử dụng phục thuộc thuộc vào authentication hoặc role.