Các giải pháp lập trình CSharp- P63
Số trang: 10
Loại file: pdf
Dung lượng: 2.67 MB
Lượt xem: 4
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các giải pháp lập trình CSharp- P63: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đềthường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P63 511 Chương 13: Bảo mậtM ục tiêu chính của Microsoft .NET Framework là làm cho việc lập trình trở nên an toàn hơn—đặc biệt lưu tâm đến việc sử dụng mobile code5 và các hệ thống phân tán. Hầu hết các hệ điều hành hiện đại (bao gồm Microsoft Windows) đều hỗ trợbảo mật dựa-trên-người-dùng (User-Based Security), cho phép bạn kiểm soát các hành độngvà các tài nguyên mà một người dùng truy xuất đến. Tuy nhiên, do sự phát triển của mạngmáy tính, đặc biệt là Internet, sự bảo mật nếu chỉ dựa vào định danh của người dùng trên hệthống là chưa đủ. Khi quan tâm đến bảo mật, mã lệnh không nên tự động nhận mức tin cậynhư mức tin cậy mà bạn đã ấn định cho người đang chạy mã lệnh này..NET Framework kết hợp hai mô hình bảo mật bổ sung lẫn nhau (thực hiện nhiều vấn đề liênquan đến bảo mật người dùng và mã lệnh): • CAS (Code Access Security—Bảo mật truy xuất mã lệnh) • RBS (Role-Based Security—Bảo mật dựa-trên-vai-trò)CAS và RBS không thay thế hay sao lại các phương tiện bảo mật do hệ điều hành nằm dướicung cấp. Chúng là các cơ chế độc lập nền, cấp thêm các khả năng bảo mật để nâng cao tínhbảo mật tổng thể trong các giải pháp được-quản-lý.CAS sử dụng các thông tin về nguồn gốc của một assembly đã được thu thập lúc thực thi—đâylà chứng cứ (evidence)—để xác định xem mã lệnh có thể truy xuất các hành động và tàinguyên nào—đây là quyền (permission). Chính sách bảo mật của .NET Framework—một tậphợp phân cấp các quy tắc cấu hình—định nghĩa phép ánh xạ giữa chứng cứ và quyền. Thưviện lớp .NET Framework sử dụng các yêu cầu quyền (permission demand hay permissionrequest) để bảo vệ các chức năng quan trọng nhất của nó không bị truy xuất trái phép. Mộtyêu cầu buộc bộ thực thi bảo đảm rằng: nếu muốn gọi một phương thức được-bảo-vệ thì mãlệnh phải có một quyền cụ thể nào đó. CAS bảo đảm rằng: khả năng thực thi của mã lệnh tùythuộc vào mức độ tin cậy của bạn đối với người tạo ra mã và nguồn gốc của nó, chứ khôngphải mức độ tin cậy đối với người dùng đang chạy mã. Các mục liên quan đến CAS trongchương này thảo luận các vấn đề sau: Cho phép mã lệnh có-độ-tin-cậy-một-phần (partially trusted code) truy xuất các assembly tên mạnh của bạn (mục 13.1). Vô hiệu hoàn toàn CAS (mục 13.2) hoặc chỉ vô hiệu việc kiểm tra quyền thực thi (mục 13.3). Yêu cầu các quyền truy xuất mã lệnh cụ thể và xác định xem bộ thực thi đã cấp các quyền nào cho mã lệnh của bạn (mục 13.4, 13.5, 13.6, và 13.7). Kiểm soát sự thừa kế và chép đè thành viên bằng CAS (mục 13.8). Xem xét và xử lý chứng cứ của assembly (mục 13.9 và 13.10). Xử lý bảo mật bộ thực thi bằng miền ứng dụng (mục 13.11 và 13.12).RBS cho phép bạn thực hiện các quyết định lúc thực thi (runtime decision) dựa trên định danh(identity) và các vai trò (role) của người dùng mà ứng dụng đang chạy trên danh nghĩa ngườidùng này. Trên hệ điều hành Windows, đây chính là việc thực hiện các quyết định dựa trên tênngười dùng Windows và các nhóm Windows mà người dùng đó thuộc về. Tuy nhiên, RBS5 Mobile code là phần mềm được truyền qua một hệ thống mạng và sau đó được thực thi trên hệ thốngcục bộ. 512 Chương 13: Bảo mậtcung 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ạntí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ậncá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 RBS và CAS trong chương này trình bày một số công việc thôngthườ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ộtquyển sách khác chuyên về bảo mật trong .NET Framework.1. 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 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épcá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àmgiả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ếpcậ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áctừ 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ớicá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ụctiê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ội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P63 511 Chương 13: Bảo mậtM ục tiêu chính của Microsoft .NET Framework là làm cho việc lập trình trở nên an toàn hơn—đặc biệt lưu tâm đến việc sử dụng mobile code5 và các hệ thống phân tán. Hầu hết các hệ điều hành hiện đại (bao gồm Microsoft Windows) đều hỗ trợbảo mật dựa-trên-người-dùng (User-Based Security), cho phép bạn kiểm soát các hành độngvà các tài nguyên mà một người dùng truy xuất đến. Tuy nhiên, do sự phát triển của mạngmáy tính, đặc biệt là Internet, sự bảo mật nếu chỉ dựa vào định danh của người dùng trên hệthống là chưa đủ. Khi quan tâm đến bảo mật, mã lệnh không nên tự động nhận mức tin cậynhư mức tin cậy mà bạn đã ấn định cho người đang chạy mã lệnh này..NET Framework kết hợp hai mô hình bảo mật bổ sung lẫn nhau (thực hiện nhiều vấn đề liênquan đến bảo mật người dùng và mã lệnh): • CAS (Code Access Security—Bảo mật truy xuất mã lệnh) • RBS (Role-Based Security—Bảo mật dựa-trên-vai-trò)CAS và RBS không thay thế hay sao lại các phương tiện bảo mật do hệ điều hành nằm dướicung cấp. Chúng là các cơ chế độc lập nền, cấp thêm các khả năng bảo mật để nâng cao tínhbảo mật tổng thể trong các giải pháp được-quản-lý.CAS sử dụng các thông tin về nguồn gốc của một assembly đã được thu thập lúc thực thi—đâylà chứng cứ (evidence)—để xác định xem mã lệnh có thể truy xuất các hành động và tàinguyên nào—đây là quyền (permission). Chính sách bảo mật của .NET Framework—một tậphợp phân cấp các quy tắc cấu hình—định nghĩa phép ánh xạ giữa chứng cứ và quyền. Thưviện lớp .NET Framework sử dụng các yêu cầu quyền (permission demand hay permissionrequest) để bảo vệ các chức năng quan trọng nhất của nó không bị truy xuất trái phép. Mộtyêu cầu buộc bộ thực thi bảo đảm rằng: nếu muốn gọi một phương thức được-bảo-vệ thì mãlệnh phải có một quyền cụ thể nào đó. CAS bảo đảm rằng: khả năng thực thi của mã lệnh tùythuộc vào mức độ tin cậy của bạn đối với người tạo ra mã và nguồn gốc của nó, chứ khôngphải mức độ tin cậy đối với người dùng đang chạy mã. Các mục liên quan đến CAS trongchương này thảo luận các vấn đề sau: Cho phép mã lệnh có-độ-tin-cậy-một-phần (partially trusted code) truy xuất các assembly tên mạnh của bạn (mục 13.1). Vô hiệu hoàn toàn CAS (mục 13.2) hoặc chỉ vô hiệu việc kiểm tra quyền thực thi (mục 13.3). Yêu cầu các quyền truy xuất mã lệnh cụ thể và xác định xem bộ thực thi đã cấp các quyền nào cho mã lệnh của bạn (mục 13.4, 13.5, 13.6, và 13.7). Kiểm soát sự thừa kế và chép đè thành viên bằng CAS (mục 13.8). Xem xét và xử lý chứng cứ của assembly (mục 13.9 và 13.10). Xử lý bảo mật bộ thực thi bằng miền ứng dụng (mục 13.11 và 13.12).RBS cho phép bạn thực hiện các quyết định lúc thực thi (runtime decision) dựa trên định danh(identity) và các vai trò (role) của người dùng mà ứng dụng đang chạy trên danh nghĩa ngườidùng này. Trên hệ điều hành Windows, đây chính là việc thực hiện các quyết định dựa trên tênngười dùng Windows và các nhóm Windows mà người dùng đó thuộc về. Tuy nhiên, RBS5 Mobile code là phần mềm được truyền qua một hệ thống mạng và sau đó được thực thi trên hệ thốngcục bộ. 512 Chương 13: Bảo mậtcung 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ạntí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ậncá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 RBS và CAS trong chương này trình bày một số công việc thôngthườ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ộtquyển sách khác chuyên về bảo mật trong .NET Framework.1. 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 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épcá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àmgiả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ếpcậ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áctừ 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ớicá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ụctiê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ạ ...
Tìm kiếm theo từ khóa liên quan:
kinh nghiệm lập trình CSharp mẹo lập trình ngôn ngữ lập trình C giáo trình lập trình CSharp lập trình java lập trình căn bản CSharpGợi ý tài liệu liên quan:
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 209 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
101 trang 199 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
142 trang 129 0 0
-
161 trang 129 1 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 116 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 109 0 0 -
Excel add in development in c and c phần 9
0 trang 106 0 0 -
78 trang 100 0 0