CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 514

514
Chương 13: Bảo mật

Nếu sau khi áp dụng

AllowPartiallyTrustedCallersAttribute

cho assembly, bạn muốn mã

lệnh có-độ-tin-cậy-một-phần chỉ gọi được một số thành viên nào đó, bạn cần bổ sung

LinkDemand

cho tập quyền

FullTrust

trên các thành viên cần thiết, như được trình bày trong

đoạn mã dưới đây:

[System.Security.Permissions.PermissionSetAttribute

(System.Security.Permissions.SecurityAction.LinkDemand,

Name="FullTrust")]

public void SomeMethod() {

§

}

2.

2.

Vô hi u b o m t truy xu t mã l nh

ệ ả ậ

Vô hi u b o m t truy xu t mã l nh

ệ ả ậ

Bạn cần vô hiệu CAS.

Thiết lập thuộc tính

SecurityEnabled

của lớp

System.Security.SecurityManager

false

và lưu lại bằng phương thức

SecurityManager.SavePolicy

. Bạn cũng có thể

sử dụng công cụ Code Access Security Policy (Caspol.exe) và thực thi lệnh

caspol

–s off

.

CAS là phần then chốt trong mô hình bảo mật của bộ thực thi .NET, và cũng là phần đặc trưng
của nền tảng .NET mà nhiều nền tảng khác không có. Mặc dù CAS được xây dựng với tiêu chí
đảm bảo hiệu năng thực thi cao nhất và đã được sử dụng một cách cẩn trọng trong thư viện
lớp .NET, nhưng vẫn có một chi phí cho mỗi yêu cầu bảo mật (security demand) và stack walk
(kết quả) mà bộ thực thi phải thực hiện.
Đôi lúc, bảo mật mức-mã-lệnh có thể không là điều bạn bận tâm, hoặc nhu cầu hiệu năng có
thể vượt quá nhu cầu CAS. Trong các trường hợp này, bạn có thể vô hiệu hoàn toàn CAS
loại bỏ chi phí cho việc kiểm tra bảo mật mức-mã-lệnh. Vô hiệu CAS có tác dụng trao cho mã
lệnh khả năng thực hiện bất kỳ hành động nào mà .NET Framework hỗ trợ (tương đương với
tập quyền

FullTrust

), bao gồm khả năng nạp mã lệnh khác, gọi các thư viện nguyên sinh, và

sử dụng con trỏ để trực tiếp truy xuất bộ nhớ.

Bạn chỉ nên vô hiệu CAS vì các lý do hiệu năng sau khi đã tiêu hết tất cả các
chừng mực có thể khác để đạt được các đặc điểm hiệu năng mà ứng dụng của
bạn đòi hỏi. Việc lập profile cho mã lệnh thường sẽ nhận biết những vùng mà
bạn có thể cải thiện đáng kể hiệu năng nhưng không phải vô hiệu CAS
. Ngoài ra,
bạn cần bảo đảm các tài nguyên hệ thống đã được bảo vệ bằng các cơ chế bảo
mật của hệ điều hành (như Windows ACLs
) trước khi vô hiệu CAS.

Caspol.exe là một tiện ích được cấp cùng với .NET Framework, cho phép bạn cấu hình chính
sách bảo mật truy xuất mã lệnh từ dòng lệnh. Khi bạn nhập lệnh

caspol –s off

hoặc

caspol

–s on

, tiện ích này sẽ xác lập thuộc tính

SecurityEnabled

của lớp

SecurityManager

. Lớp

SecurityManager

cung cấp tập các phương thức tĩnh để truy xuất dữ liệu và chức năng bảo

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.