Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# для профСссионалов. Π’ΠΎΠΌ IIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 113

Автор Π‘ΠΈΠΌΠΎΠ½ Робинсон

Π’ Windows 2000 Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ бСзопасности располоТСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ прСдприятия

C:\WinNT\Microsoft.NET\Framework\v1.0.xxxx\Config\enterprise.config

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹

C:\WinNT\Microsoft.NET\Framework\v1.0.xxxx\Config\security.config

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

%USERPROFILE%\application data\Microsoft\CLR security config\vxx.xx\security.config

НомСр вСрсии, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ нСсколькими 'x', Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии .NET Framework, установлСнной Π½Π° машинС. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли администратору Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡΡΡŒ Π² систСмС со своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью. Однако Π² ΠΎΠ±Ρ‰Π΅ΠΌ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ caspol.exe ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ММБ для управлСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ систСмы бСзопасности.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ нСбольшоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ диску, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ управлСния. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ относится ΠΊ C# Windows Forms с ΠΎΠΊΠ½ΠΎΠΌ списка ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. Если Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ списка заполняСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ animals.txt Π² ΠΊΠΎΡ€Π½Π΅ диска C:\:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual Studio.NET, СдинствСнными измСнСниями Π² Π½Π΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ добавлСния ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠΊΠ½Π° списка ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Load Data, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ события, Ρ‡Ρ‚ΠΎ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· SecurityAppl

private void button1_Click(object sender, System.EventArgs e) {

 StreamReader stream = File.OpenText(@"C:\animals.txt");

 String str;

 while ((str = stream.ReadLine()) != null) {

  listBox1.Items.Add(str);

 }

}

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ простой тСкстовый Ρ„Π°ΠΉΠ» ΠΈΠ· корня диска C:\, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит список ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках, ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° string, которая Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² ΠΎΠΊΠ½Π΅ списка.

Если Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° локальной машинС ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· корня диска C:\ Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠΊΠ½Π΅ списка, ΠΊΠ°ΠΊ ΠΈ оТидалось. НСявно срСда выполнСния прСдоставила сборкС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для выполнСния, доступа ΠΊ интСрфСйсу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ чтСния Π΄Π°Π½Π½Ρ‹Ρ… с локального диска:

Вспомним, Ρ‡Ρ‚ΠΎ полномочия Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Π² Π·ΠΎΠ½Π΅ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ строгими, Ρ‡Π΅ΠΌ Π½Π° локальной машинС, Π² частности, ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ доступ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ диску (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). Если снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π² этот Ρ€Π°Π· с ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСтСвого диска, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅ΠΌΡƒ прСдоставлСны полномочия для выполнСния ΠΈ доступа ΠΊ интСрфСйсу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Однако, Ссли Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Load Data Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ бСзопасности:

Π’ тСкстС сообщСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ упоминаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ System.Security.Permissions.FileIOPermission. Он являСтся ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ΠΌ, Π½Π΅ прСдоставлСнным ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌ классом ΠΈΠ· Framework, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π½Π° локальном дискС.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π° Intranet прСдоставляСтся мноТСство ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ LocalIntranet. ИзмСним с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ это мноТСство ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π½Π° FullTrust, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любой ΠΊΠΎΠ΄ ΠΈΠ· Π·ΠΎΠ½Ρ‹ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚ ΠΌΠΎΠ³ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

caspol.exe -chggroup 1.2 FullTrust

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСтСвого диска ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ списка заполняСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠΎΡ€Π½Π΅ диска C:\ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚.

Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… сцСнариях, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСсурсы, управляСмыС полномочиями, рСкомСндуСтся Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ бСзопасности ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ постСпСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ свою Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. НапримСр, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ try-catch Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΠ΄Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ, Ссли пороТдаСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SecurityException, Ρ‚ΠΎ Π² ΠΎΠΊΠ½Π΅ списка выводится строка "Permission denied accessing file" ("ΠŸΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΡ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ"):

// Код ΠΈΠ· SecurityАрр1

private void button1_Click(object sender, System.EventArgs e) {

 try {

  StreamReader din = File.OpenText(@"C:\animals.txt");

  String str;

  while((str = din.ReadLine() != null) {

   listBox1.Items.Add(str);

  }

 } catch (SecurityException exception) {

  listBox1.Items.Add("Permission denied accessing file");

 }

}

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСтСвого диска, Ρ‚ΠΎ скорСС всСго Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ всСму ΠΊΠΎΠ΄Ρƒ Π² ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚. ВмСсто этого Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° ΠΈ условия члСнства для строгого контроля трСбования прилоТСния с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π΅Π³ΠΎ располоТСния Π² ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚, строгого ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ сСртификата, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ издатСля.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈ полномочиями

Π’ управляСмой бСзопасности .NET, Ссли сборка ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ бСзопасности, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ ΠΏΡƒΡ‚ΠΈ продолТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹:

β–‘ Π‘ΠΌΡΠ³Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ

β–‘ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сборку

β–‘ ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для сборки строгоС имя

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, Π½ΡƒΠΆΠ½ΠΎ Π±Ρ€Π°Ρ‚ΡŒ Π² расчСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ надСТности сборки.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ систСмы бСзопасности

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ систСма бСзопасности .NET ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, это дСлаСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

caspol.exe -security off

Π§Ρ‚ΠΎΠ±Ρ‹ снова Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ систСму бСзопасности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -security on

Риски бСзопасности, присущиС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ систСмы бСзопасности, для нас ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ систСму бСзопасности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. НСобходимо Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ привСдСнная Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ административных ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, Ρ‚.Π΅. любой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ (ΠΈΠ»ΠΈ вирус) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ систСму бСзопасности .NET. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ систСму бСзопасности Windows, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ использования.

ВосстановлСниС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ систСмы бСзопасности

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ систСмы бСзопасности Π² Π΅Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ состоянии, ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -reset

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ систСмы бСзопасности Π² состояниС установки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°

МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ полномочия. НапримСр, ΠΌΡ‹ опрСдСляСм, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ с web-сайта www.wrox.com ΠΈ прСдоставляСм Π΅ΠΌΡƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ систСмС (Π½Π΅ довСряя ΠΊΠΎΠ΄Ρƒ с любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ web-сайта). ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ новая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ΄Π°.

caspol.exe -listgroups

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ:

Code Groups:

1. All code: Nothing

 1.1. Zone β€” MyComputer: FullTrust

 1.2. Zone β€” Intranet: LocalIntranet

  1.2.1. All code: Same site Socket and Web.

  1.2.2. All code: Same directory FileIO β€” Read, PathDiscovery

 1.3. Zone - Internet: Internet

  1.3.1. All code: Same site Socket and Web.

 1.4. Zone - Untrusted: Nothing

 1.5. Zone β€” Trusted: Internet

  1.5.1. All code: Same site Socket and Web.

…

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Zone: Internet ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ 1.3, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -addgroup 1.3 -site www.wrox.com FullTrust

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ явно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ систСмы бСзопасности Π½Π° машинС. Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ caspol.exe -listgroups, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присвоСно FullTrust.

Code Groups:

1. All code: Nothing

 1.1. Zone - MyComputer: FullTrust

 1.2. Zone β€” Intranet: LocalIntranet

  1.2.1. All code: Same site Socket and Web.

  1.2.2. All code: Same directory FileIO - Read, PathDiscovery

 1.3. Zone β€” Internet: Internet

  1.3.1. All code: Same site Socket and Web.

  1.3.2. Site - www.wrox.com: FullTrust

 1.4. Zone β€” Untrusted: Nothing

 1.5. Zone - Trusted: Internet

  1.5.1. All code: Same site Socket and Web.

  1.5.2.

…

Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π° Intranet (1.2), которая прСдоставляСт FullTrust всСм прилоТСниям, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΡΡ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСтСвого диска:

caspol.exe -addgroup 1.2 -url file:///\\intranetserver/sharename/*FullTrust

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -remgroup 1.3.2

Она Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ систСмы бСзопасности, ΠΈ Ссли ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½Π° сообщит, Ρ‡Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΠ° ΡƒΠ΄Π°Π»Π΅Π½Π°.

НСобходимо Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСльзя ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° All Code, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½ΠΈΠΆΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³Ρ€ΡƒΠΏΠΏΡ‹ для Internet, MyComputer ΠΈ LocalIntranet.