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

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

cung cấp một cơ chế bảo mật chung không lệ thuộc vào hệ điều hành nằm dưới, cho phép bạn
tích hợp vào bất kỳ hệ thống tài khoản người dùng nào. Các mục trong chương này thảo luận
các vấn đề sau đây của .NET RBS:

Tích hợp RBS với các tài khoản người dùng Windows và xác định xem một người dùng
có là thành viên của một nhóm Windows nào đó hay không (mục 13.13).

Kiểm soát việc truy xuất đến các chức năng của ứng dụng dựa trên người dùng hiện
hành và các vai trò mà người dùng này là một thành viên (mục 13.14).

Giả nhận một người dùng Windows để thực hiện các tác vụ hệ điều hành trên danh
nghĩa người dùng đó (mục 13.15).

Các mục liên quan đến RBSCAS trong chương này trình bày một số công việc thông
thường mà bạn sẽ cần thực hiện trong các ứng dụng, nhưng chúng chỉ mô tả một phần nhỏ
trong các khả năng bảo mật của .NET Framework. Để hiểu rõ hơn, bạn hãy tham khảo một
quyển sách khác chuyên về bảo mật trong .NET Framework.

1.

1.

Cho phép mã l nh có-đ -tin-c y-m t-ph n

ậ ộ

Cho phép mã l nh có-đ -tin-c y-m t-ph n

ậ ộ

s d ng assembly tên m nh c a b n

ử ụ

ủ ạ

s d ng assembly tên m nh c a b n

ử ụ

ủ ạ

Bạn cần viết một assembly chia sẻ sao cho nó là khả truy xuất đối với mã lệnh
có-độ-tin-cậy-một-phần (theo mặc định, bộ thực thi không cho phép mã lệnh có-
độ-tin-cậy-một-phần truy xuất các kiểu và các thành viên nằm trong một
assembly tên mạnh).

Áp dụng đặc tính

System.Security.AllowPartiallyTrustedCallersAttribute

cho

assembly chia sẻ của bạn.

Để giảm thiểu các nguy cơ bảo mật do mã lệnh nguy hiểm bày ra, bộ thực thi không cho phép
các assembly có-độ-tin-cậy-một-phần truy xuất đến các assembly tên mạnh. Hạn chế này làm
giảm nguy cơ mã lệnh nguy hiểm tấn công vào hệ thống của bạn, nhưng đối với một cách tiếp
cận áp chế như thế cần phải có lời giải thích.
Theo quy tắc, các assembly tên mạnh được cài đặt trong Global Assembly Cache (GAC) và
chứa các chức năng quan trọng được dùng chung giữa nhiều ứng dụng. Điều này hoàn toàn
đúng với các assembly cấu thành thư viện lớp .NET Framework. Các assembly tên mạnh khác
từ các sản phẩm được-phân-bổ-rộng-rãi cũng sẽ nằm trong GAC và là khả truy xuất đối với
các ứng dụng được-quản-lý. Khả năng hiện diện trong GAC cao, tính khả truy xuất dễ dàng,
và tầm quan trọng đối với nhiều ứng dụng khác nhau khiến cho các assembly tên mạnh là mục
tiêu có khả năng nhất đối với bất cứ hành động phá hoại nào của mã lệnh nguy hiểm được-
quản-lý.
Thông thường, mã lệnh có khả năng nguy hiểm là mã được nạp từ các nơi xa—như Internet—
ở đó bạn có ít (hay không có) sự kiểm soát nào. Với chính sách bảo mật mặc định, tất cả mã
lệnh chạy từ máy cục bộ đều có độ tin cậy toàn phần (full trust), trong khi mã lệnh được nạp
từ các nơi xa chỉ có độ tin cậy một phần (partial trust). Ngăn mã lệnh có-độ-tin-cậy-một-phần
truy xuất đến các assembly tên mạnh; nghĩa là mã lệnh có-độ-tin-cậy-một-phần không có cơ

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.