Các giải pháp lập trình CSharp- P65 pps

10 151 0
Các giải pháp lập trình CSharp- P65 pps

Đang tải... (xem toàn văn)

Thông tin tài liệu

531 Chương 13: Bảo mật !OPK)c4"O !OS0 '"ƒ%P'c&gVV‹"6T K)c&gVV'A‹"6T= P‹v&`_a Z'!S0Tƒ‘ "fO'K)c4& ' HX'HX*'D ''A+  @OP"Vfv`_a'=4%‹v&`_a Z ’'="f‹"& v`_a'='9 v`_a'=&'A''A*'A+  @O'4%"Vfv`_a'=& ''? )9B'*'+ @OP8f? )4& ? ) )9B? )*+ @6' !8f? )&  )&H))<*'? )+ ¼½—˜¡¾”˜¡™¿ž˜ÀžÁ˜ÂÞÁ˜¡Ä™˜ÅÄ™˜Æǘ•ÈÇ? ) œ•ÀŸ˜œ•ÀžÁ˜œÀ˜'Åɘ”Ê˘ſ˜¡™¿ž˜ÀžÁ˜ÂÞÁ ÅÌŸ˜ÍÎÈœ˜”½—˜ÊŸ& ''HX&'X*D )+ . . 12. 12. X lý b o m t b th c thiử ả ậ ộ ự X lý b o m t b th c thiử ả ậ ộ ự b ng chính sách b o m t c a mi n ng d ngằ ả ậ ủ ề ứ ụ b ng chính sách b o m t c a mi n ng d ngằ ả ậ ủ ề ứ ụ   Bạn cần kiểm soát (bằng mã lệnh) các quyền được cấp cho các assembly.   Cấu hình (bằng mã lệnh) chính sách bảo mật của miền ứng dụng mà bạn đã nạp các assembly vào đó. 532 Chương 13: Bảo mật P2&.6gsecurity policyh&t.&D.:2\4'genterpriseh8.' gmachineh8 )eguserh8.:)gapplication domainhL=9'Ii K9'.(.&'&5;i69'$&C.# .:2t2XgXAND 6Bh&D69'P9'5. 6z(De(.&'  Ngay cả khi các mức chính sách công ty, máy, hay người dùng chỉ định code group LevelFinal (chỉ thị bộ thực thi không đánh giá các mức chính sách thấp hơn), bộ thực thi luôn sử dụng mức chính sách của miền ứng dụng để tính grant- set của một assembly. PJ    .:      4  '8  .'8       )e    $    %  q  &5 Administrative Toolsu%.:)4t*&>K&=> 4%q2.:)$l%2&.6 ..:)8&**..:2g&5.ShtF. :) {<')=..:2&5.SF.4<)8e' :  *    2    &  .6  .  &*  N  )r    y &'&&-  .4..:2&.6L>.#D $ -  8&**)=.G<)(8iq >869'8!2.#)(PF $O)*)=.:286'$9*. 9''y6%&.6NET8S6<'84I .#'%&';<')=..:2&5.S  Thông thường, bạn sẽ phát triển một công cụ trợ giúp việc tạo một mức chính sách và ghi định nghĩa mức chính sách ra file; sau đó, bạn có thể nạp định nghĩa này từ đĩa khi cần. Lớp PolicyLevel có hai phương thức nhằm đơn giản hóa quá trình này: ToXml đưa một đối tượng PolicyLevel về dạng dễ lưu trữ, và FromXml xây dựng lại một đối tượng PolicyLevel từ dạng đã được lưu trữ. "SFD$ -  .42&.6..D8&*F F..:)7'.I &HX I.:). &*  .D    %8    '  D  $  -     M  : HX&HX "S&*FNO 'X  ''  %  .  F    0  HX   L*  J  F    0 HX .N>.#.:)TI&*0 HX N :8F@X.* &'&&?G  L*4D$  -   ..:)* (.&'.:)'P(.&'$*&*I62 &.6.:)Fz(J)=>.:2\4'8.'8  )eP2.:)J)(.&'$*F $%74 8&*O)v'*(.&'jz z6'.:).4&i&&C2.:) 533 Chương 13: Bảo mật ‚))<'%&'9%*..:2F..: )":2'9')=>&(.(.&'E$ :: &'&&'   &' &'& &'&''&v`_a'= HX?G  )1*+  @OPK)c4*"O$ !"ƒ+& HX)9HX&'X*:):+ >O$ !K)c!OC/V '!PMW$e8K)c& •  QRW$e8"VfHX& X*)+  >O$ !K)c"fe 0& • . !QRW$e8T"Vf HX"f'Kƒ&W$e8‘$$ sKC$x)N'6'T &>I%$' /)C/"f QsK!e& '  )X*HX)+ @OP- 4K)c& - 9- &'HX- *+  @OPA'1)n'4)2!UVT0 V†Q)'&QR'! 534 Chương 13: Bảo mật ƒ'2C4 4Qe)&gK!Š!Qe $"KCM"7 4P'k'x W$K)c& &()n'9BA'1)n'* BH1')*+D B*&n>)'*:>:++ +  @O8$)'"G$"$sK!‘"fQ P)P'O'&}R)'V !PA'1)n'D6s$'R†eW$ ‹'2'6$'"JCRQ '2C4"76&1x)'"fO 4"iW ?G "e"e'’C/Q6sK !%$)'C$&  @O)'Q8sKA@'$ "f$!M1'=& v`_a'='='9 v`_a'=&'A''A*:'=&':+  &()n'&H)))*B)n'* B'1')*'='+D B*&n>)'*:A@':+D H'&?G + ++ @O)'Q8sK^'$ "f$!M-B'D^& v`_a'=B''9 v`_a'=&'A''A*:B'&':+  &()n'&H)))*B)n'* B'1')*B''+D B*&n>)'*:^':+D H'&?G + 535 Chương 13: Bảo mật ++ @O)'Q8sK?G$ "f$!MA'CD^& v`_a'=='C'9 v`_a'=&'A''A*:='C&':+  &()n'&H)))*B)n'* B'1')*='C'+D B*&n>)'*:?G:+D H'&?G + ++ @6P)'2"Qe$ C/C4 4'!&n$'! 48sK >&}R'!!?G 6‘C/ 8sK!%$'C$De%$ W$*/D$D !)2+& &()n'&H)))*B)n'* BH1')*+D B*&n>)'*:>:+D H'&?G + ++  n$W$K)c& )&HX*+ . . 13. 13. Xác đ nh ng i dùng hi n hành có là thành viênị ườ ệ Xác đ nh ng i dùng hi n hành có là thành viênị ườ ệ c a m t nhóm Windows nào đó hay khôngủ ộ c a m t nhóm Windows nào đó hay khôngủ ộ   Bạn cần xác định người dùng hiện hành của ứng dụng có phải là thành viên của một nhóm người dùng Windows nào đó hay không.   Thu lấy đối tượng System.Security.Principal.WindowsIdentity mô tả người dùng hiện hành bằng phương thức tĩnh WindowsIdentity.GetCurrent . Kế tiếp, truyền đối tượng WindowsIdentity cho phương thức khởi dựng của lớp System.Security.Principal.WindowsPrincipal để thu lấy đối tượng 536 Chương 13: Bảo mật WindowsPrincipal . Cuối cùng, gọi phương thức IsInRole của đối tượng WindowsPrincipal để xác định người dùng này có nằm trong một nhóm Windows nào đó hay không. PMIRBS.NET FrameworkQ$F2v&.6)=z>z z)e 5.)49)2<'\ • &'&'&^^) • &'&'&^' p) ^^) .4=..S*'>)q= '8 ~ * .    )e !     )i   gservice accounth p ) ^' .4 ^^) =6k.='" kJ.=<*8)eF.=v&.6M= 8~*.F. )eWindows l2$RBS&.6 )eWindows8NET Framework <'g=) ^^)  ^' h\ • &'&'&,)B^) • &'&'&,)B' y ,)B^) =) ^^) .4. )eWindowsy ,)B' = ^' .46F.Windows . )e' u%.NET RBS.$II68&*4 ';2vv )eWindows 49 ) ^^)  ^' 8&*O)=ID$ ,)B^)  ,)B'  l;i )eF>.F.Windows F' 48>&*0M:q ,)B^)&n'' RM: '.D$ ,)B^) .4 )eWindows.% *'>)q )e'wII8*.D$ ,)B' . 'D$  ,)B^) M:C)=PDe80M : ^^( D$ ,)B' .;(. )e'F5. .F.gkhF'4 ^^(   ' I )e' >F.S$Ji8$* =   Bạn có thể thu lấy tham chiếu IPrincipal đến một đối tượng WindowsPrincipal bằng thuộc tính tĩnh CurrentPrincipal của lớp System.Threading.Thread . Tuy nhiên, kỹ thuật này tùy thuộc vào cấu hình chính sách principal của miền ứng dụng hiện hành; mục 13.14 sẽ thảo luận vấn đề này chi tiết hơn. RM: ^^( F&>&*t\ • R>&:6.#:>F.N.7>F.F )*  qDomainNamer•qGroupNamer  DF.)=z>z.F )* qMachineNamer•qGroupNamer DF.$iq&HI.D. 537 Chương 13: Bảo mật         >    .  F. Windows x8  &*  S'  O  )  )* F^-@^>•qGroupNamer  ^^( =.F<&Kz D >F.$Ji • R>&:6.D'>g  h8D'Ji. Windows Role IdentifiergRIDhRID.MI6&IF.84 4Kglanguageh=&iFglocalizationh • R>  &  :  &  6  .    >        > &'&'&,)BF^(  w   > '  i q   >.4F. Windows FÏLZ^^>>8 RID8i ,)BF^( .#F.Windowsx Bảng 13.3 Tên, RID, và giá trị WindowsBuiltInRole của các tài khoản có sẵn Tên tài khoản RID (Hex) Giá trị WindowsBuiltInRole BUILTIN\Account Operators 0x224 Hp'' BUILTIN\Administrators 0x220 H)'' BUILTIN\Backup Operators 0x227 FCp'' BUILTIN\Guests 0x222 n BUILTIN\Power Users 0x223 B'' BUILTIN\Print Operators 0x226 'p'' BUILTIN\Replicators 0x228 (' BUILTIN\Server Operators 0x225 p'' BUILTIN\Users 0x221 ' Ý  Lớp WindowsIdentity cung cấp các phương thức khởi dựng nạp chồng cho phép bạn thu lấy đối tượng WindowsIdentity mô tả một người dùng nào đó (khi chạy trên Microsoft Windows Server 2003 trở về sau). Bạn có thể sử dụng đối tượng này và phương pháp được mô tả trong mục này để xác định xem người dùng đó có phải là thành viên của một nhóm Windows nào đó hay không. Nếu bạn sử dụng một trong các phương thức khởi dựng này khi chạy trên một phiên bản Windows cũ, nó sẽ ném ngoại lệ System.ArgumentException . Trên các nền Windows trước Windows Server 2003 , bạn phải sử dụng mã lệnh nguyên sinh ( native code ) để thu lấy Windows access token mô tả người dùng cần thiết. Kế đó, bạn có thể sử dụng access token này để tạo đối tượng WindowsIdentity ; mục 13.15 sẽ trình bày cách thu lấy Windows access token cho những người dùng cụ thể. ‚) ,)Bn'?G )<'%&'. )eF >.6F.Windows $>>'4PF.'$J iDD)kT&*!>.'28>.8' F^-@^> gD F.Windows xh>F. 538 Chương 13: Bảo mật  &'&' ,)Bn'?G  )1*'qr'+  @Q"Vf,)B^) /e)20!& ,)B^))9,)B^)&n''*+  @O"Vf,)B'/e$Ce«e8 T"Vf,)B^)"f‹"& ,)B''9B,)B'*)+  X0s$"VV)h0*6ƒ+ !C'G )20!ƒ!! 6TxƒC/& ='*'''+  &,'-*:^_.'=L.…9\.:D )&>D'D'&^^(*'++ . . . HI&**'2)' )eF> ]L >..'2F >   1H<^>?  &5    WindowsGroupExample BUILTIN\Administrators BUILTIN\Users MACHINE\Accountants 8I;F\ ^1H<^>?•]L'=F^-@^>•H)''…9A ^1H<^>?•]L'=F^-@^>•'…9@' ^1H<^>?•]L'=1H<^>?•H…9@' 14. 14. H n ch nh ng ng i dùng nào đó th c thi mã l nh c a b nạ ế ữ ườ ự ệ ủ ạ H n ch nh ng ng i dùng nào đó th c thi mã l nh c a b nạ ế ữ ườ ự ệ ủ ạ   Bạn cần hạn chế những người dùng nào đó truy xuất các phần tử trong mã lệnh của bạn dựa trên tên người dùng hay các vai trò mà người dùng này là thành viên. 539 Chương 13: Bảo mật   Sử dụng lớp System.Security.Permissions.PrincipalPermission và bản sao đặc tính System.Security.Permissions.PrincipalPermissionAttribute của lớp này để bảo vệ các phần tử trong chương trình của bạn với các yêu cầu RBS . NET Framework#$'>NRBS &/&gimperativeRBS demandh'>NRBS &gdeclarative RBS demandhy '' #$&.6&/ &8&!2 ''H' '#$&.6 &P'>NRBS O)GD'>NCAS8'>N RBS J}>. )eF8!4 Mk.  )e'>"'>NRBS &=;X>k  )e  8  I  G4 * '> N8 & = @ X. * &'&'?G  l*.S)<'%&'G.'>N&.6&/&\ U$TP67e8P)Nk'6k k'h&  )1)*+ • '''9 B''*:'>:D:(>:+  '&X)*+ • . 7>8&**.D$ '' Ji> )e> k.&*'>N8t0M: X) FL*JFJi.>  )e>k.#'>NHI> )e!>k  8& …i?@V.S'>Nw9'';.S8.'>N RBS 4I9.ŠT&=J> )e k )e l*.S)<'%&'G.'>N&.6&\ U$TP67e8C$)Nk'6k k'h& q''*'H&X)D>9:'>:D (9:(>:+r  )1)*+ˆ&&&ˆ. L*F''>NRBS&C.:'.:>P'>N.:z )>QF.'>N.:zz>X1 '>N.:z HF8&*F=0='>NRBS&/&'&7'>8 '>N&.6&/&X&*2$'>NRBS.S =K'>NRBS:*H8I4&Ik'> )e '>NG&>)i8&*O)'>N&/&P'>NRBS&F 6$G6.S)r6&IMH8&*F 540 Chương 13: Bảo mật ;(.'>N RBS &&54Permview.exegS$6. Z^ahP)e='>NRBS&/&'&8&*?/5&= F';>k )e‘¯“–¥‘˜•“‘'>N. e$ y &@')&@') .4.%g*'.S$z 9zBh72q '''  @') :. ^' E .4 )e.%*'>)q 'A.: 8.#%?F.Windows access tokenIE.4Windows .%*'>)q'L*N5 ^'   Windows access token =>& Windows O) access token=MI&.68&=NET O) ^' '>NRBS C.::)"!)eGF.4e . )e8'4Fq446' 7(.!i82 @')&''' 4;iu%' 4>9I )eF. 8J.NVD :)O)4'8IINET 0C)=‰ ‰D   2  '''   7  >8  .S      '    2 @')&''' 8&=. ^' 2'( <'\ Z HI.:).%=F.principal.!i8 %&=@principal'2 @')&'''  7(.!i8.:)4F principal .!iL*FI6 principal .!  i    .  .  :  )  &5    0  M  : @')' >.D$ &HX .4.:)&* .D   % l  0  ' 8  .S     &*   F N  O ''  '' L*JFI6principal.!i .N.#.:)T 0 @')' :)3I* &'&&?G  ] HI.:)4Fprincipal.!i82principal .: )  @  ;  i    =  ^'    @  $  *        F   @')&'''  l%2principal ..:)8&*N'D$ HX .4.:)0M: ' D$ 'RM:  '  6.>> &'&'&' 8i'&ID$ ^'  @$ @')&''' l0  ' 8 .S&*FNO ''  '' LZ^_ >i ' Ti.!i )'  ^ HI.S&*FNO ''  '' 8&*F =  *    D  $  ^'    =  I    F      2 . ụ   Bạn cần kiểm soát (bằng mã lệnh) các quyền được cấp cho các assembly.   Cấu hình (bằng mã lệnh) chính sách bảo mật của miền ứng dụng mà bạn đã nạp các assembly vào đó. 532 Chương 13: Bảo. System.Security.Permissions.PrincipalPermissionAttribute của lớp này để bảo vệ các phần tử trong chương trình của bạn với các yêu cầu RBS . NET Framework#$'>NRBS &/&gimperativeRBS. tượng này và phương pháp được mô tả trong mục này để xác định xem người dùng đó có phải là thành viên của một nhóm Windows nào đó hay không. Nếu bạn sử dụng một trong các phương thức khởi

Ngày đăng: 08/07/2014, 17:20

Mục lục

  • CẤU TRÚC CỦA SÁCH

  • YÊU CẦU VỀ HỆ THỐNG

  • CÁCH SỬ DỤNG ĐĨA CD

  • Chương 1:PHÁT TRIỂN ỨNG DỤNG

    • 1. Tạo ứng dụng Console

    • 2. Tạo ứng dụng dựa-trên-Windows

    • 3. Tạo và sử dụng module

    • 4. Tạo và sử dụng thư viện

    • 5. Truy xuất các đối số dòng lệnh

    • 6. Chọn biên dịch một khối mã vào file thực thi

    • 8. Tạo và quản lý cặp khóa tên mạnh

    • 9. Tạo tên mạnh cho assembly

    • 10. Xác minh một assembly tên mạnh không bị sửa đổi

    • 11. Hoãn việc ký assembly

    • 12. Ký assembly với chữ ký số Authenticode

    • 13. Tạo và thiết lập tin tưởng một SPC thử nghiệm

    • 14. Quản lý Global Assembly Cache

    • 15. Ngăn người khác dịch ngược mã nguồn của bạn

    • Chương 2:THAO TÁC DỮ LIỆU

      • 1. Thao tác chuỗi một cách hiệu quả

      • 2. Mã hóa chuỗi bằng các kiểu mã hóa ký tự

      • 3. Chuyển các kiểu giá trị cơ bản thành mảng kiểu byte

Tài liệu cùng người dùng

Tài liệu liên quan