Mã hóa thông tin cấu hình trên ASP.NET
Trong nhiều trường hợp khi triển khai ứng dụng cho khách hàng, bạn sẽ muốn che giấu một số thông tin mang tính chất nhạy cảm đối với ứng dụng của mình như mật khẩu, cấu hình hoạt động... Bài viết này sẽ hướng dẫn bạn các bước để mã hóa các phần của một file cấu hình trong ứng dụng ASP.NET (web.config) sử dụng Protected Configuration. ...
Protected Configuration giúp nâng cao tính bảo mật của một ứng dụng bằng cách cho phép người lập trình mã hóa các thông tin nhạy cảm được lưu trong file Web.config. Bạn có thể sử dụng tiện ích aspnet_regiis.exe để mã hóa các phần (section) của file Web.config và quản lý các key dùng để mã hóa. ASP.NET sẽ tự giải mã file cấu hình khi nó xử lý file này, do vậy, người lập trình không cần giải mã các thông tin này. Trong bài viết này, các bạn sẽ được tìm hiểu:
* Cách mã hóa các phần của file Web.config bằng Protected Configuration
* Truy xuất các phần được mã hóa
1. Cấp quyền truy xuất tới một khóa mã hóa RSA (RSA Encryption Key)
Trước khi ASP.NET có thể giải mã các thông tin được mã hóa trong Web.config, ứng dụng ASP.NET của bạn phải có quyền truy xuất (read access) tới khóa mã hóa được sử dụng để mã hóa và giải mã các thông tin này. Bài hướng dẫn này sử dụng provider mặc định là RsaProtectedConfigurationProvider được xác định trong file Machine.config. Đối tượng chứa các khóa RSA được sử dụng bởi provider mặc định này có tên là "NetFrameworkConfigurationKey".
Cấp phép cho ứng dụng ASP.NET truy xuất đến phần chứa khóa mã hóa RSA mặc định
Mở một trình soạn thảo và copy đoạn code sau vào một file mới:
Visual Basic
Code:
C#
Code:
1. <%@ Page Language="C#" %>
2. <% 3. Response.Write(System.Security.Principal.WindowsId entity.GetCurrent().Name); 4. %>
1.
2. Lưu file này vào thư mục chứa ứng dụng của bạn với tên identity.aspx.
3. Để xác định định danh (identity) cho ứng dụng web của bạn, mở file này trên trình duyệt, nội dung hiển thị trên trình duyệt chính là identity của ứng dụng đó.
4. Trên cửa sổ command prompt, chạy aspnet_regiis.exe với các tham số sau:
* Tham số -pa, theo sau là RsaProtectedConfigurationProvider.
* Định danh của ứng dụng.
Ví dụ, lệnh sau cấp quyền cho account NETWORK SERVICE truy xuất đến đối tượng chứa key RSA mặc định "NetFrameworkConfigurationKey" .
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
Hãy giữ nguyên cửa sổ command prompt này.
2. Mã hóa các phần của file web.config
Bây giờ ứng dụng web của bạn đã có quyền truy xuất đến đối tượng chứa key mã hóa của RsaProtectedConfigurationProvider, bạn sẽ mã hóa các phần trong file Web.config bằng các key trong đối tượng này. Sau đó ASP.NET sẽ tự động giải mã khi nó sử dụng đến các phần này.
Mã hóa phần
1. Mở file Web.config trên một trình soạn thảo để chỉnh sửa.
* Nếu ứng dụng web của bạn không có file Web.config, hãy mở một trình soạn thảo, copy đoạn code sau vào và lưu lại trên thư mục gốc ứng dụng của bạn với tên là web.config.
2. Hãy đảm bảo trên file của bạn có 2 phần là
Code:
1.
2.
3.
4.
5.
6.
8.
9.
Ghi và đóng file này lại.
Trên cửa sổ dòng lệnh, chuyển sang thư mục của .NET 2.0 bằng lệnh sau:
cd \WINDOWS\Microsoft.Net\Framework\v2.0.*
Sau đó chạy aspnet_regiis.exe với các tùy chọn:
* Tùy chọn -pe và "connectionStrings" để mã hóa phần connectionStrings.
* Tùy chọn -app và tên ứng dụng của bạn.
Ví dụ:
aspnet_regiis -pe "connectionStrings" -app "/MyApplication"
Lặp lại bước trên cho phần
aspnet_regiis -pe "system.web/machineKey" -app "/MyApplication"
Giữ nguyên cửa sổ prompt này.
Mở file Web.config, hãy xem các mục được mã hóa, nội dung của chúng có dạng như sau:
Code:
1.
2.
3.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Đóng file web.config lại.
3. Truy cập vào phần cấu hình đã bị mã hóa
ASP.NET tự động giải mã phần nội dung file Web.config file khi nó xử lý. Do đó, không cần thực hiện thêm các bước khác để giải mã nội dung đã mã hóa để ứng dụng ASP.NET có thể làm việc cũng như truy xuất các giá trị này. Tuy nhiên, bạn có thể làm như sau nếu muốn hiển thị các thông tin này.
Để hiển thị các thông tin đã được mã hóa
Mở một trình soạn thảo, copy và paste đoạn code sau vào một file mới:
Visual Basic
Code:
1. <%@ Page Language="VB" %>
2. <%@ Import Namespace="System.Configuration" %>
3. <%@ Import Namespace="System.Web.Configuration" %>
4.
16.
17.
18.
No comments:
Post a Comment