Microsoft .NET Framework FAQ - Безопасность

ОГЛАВЛЕНИЕ

 

Безопасность

Как сделать, чтобы мой код взаимодействовал с системой безопасности?

Обычно для этого ничего не нужно делать, большинство приложений запускаются как безопасные и недоступны для многих атак. Просто необходимо использовать стандартные библиотеки для доступа к ресурсам (таким, как файлы) или использовать защищенные операции (приватные члены типа), поддержка безопасности уже включена в эти библиотеки. Есть одна простая вещь, которую разработчик может захотеть включить - это описать запрашиваемые права, чтобы ограничить права, которые может получить его код (если это требуется). Одновременно это дает уверенность в том, что если код запущен, то он получит все права, которые ему нужны.
Только разработчики, которые создают новые базовые библиотеки классов, которые используют новые типы ресурсов, должны непосредственно работать с системой безопасности.

Почему мой код получает исключение от системы безопасности, когда я запускаю ее с сетевого диска?

Используемая по умолчанию политика безопасности дает ограниченный набор прав для кода, который запускается из локальной интранет зоны. Эта зона определяется установками безопасности Internet Explorer, и используется, чтобы определить локальную сеть в предприятии. Поскольку файлы, имеющие UNC-вид, или находящиеся на сетевом диске (используя команду NET USE), передаются через локальную сеть, они тоже считаются в локальной зоне интранет.

Значения по умолчанию исходят из ситуации небезопасного интранета. Если ваш интранет безопасен, то вы можете изменить политику безопасности (используя утилиту конфигурации .NET Framework или утилиту CASPol ), чтобы предоставить больше прав для локального интранета, или его части (например, для определенных разделяемых дисков).

Как запустить код, если политика безопасности его остановила?

Исключения по безопасности случаются, когда код пытается выполнить операции, на которые у него нет прав. Права даются на основании того, что известно о коде, в основном по его месторасположению. Например, код, загружаемый из Интернета получает значительно меньше прав, чем код, установленный локально, поскольку он потенциально более опасен. Так, чтобы позволить коду работать, когда система безопасности вызвала исключение, вы должны увеличить права, предоставленные коду. Самый простой путь - переместить приложение в более доверяемое место (например, в локальную файловую систему). Но это не будет работать во всех случаях (хорошим примером являются web-приложения или интранет-приложения в корпоративной сети). Поэтому, вместо изменения месторасположения кода, вы можете изменить установки политики безопасности, чтобы дать текущему месторасположению больше прав. Это делается с помощью утилиты конфигурации .NET Framework Configuration или утилиты управления правами доступа (caspol.exe). Если вы разработчик кода, то вы можете подписать код цифровой подписью и затем модифицировать политику безопасности, чтобы дать больше прав для кода с данной подписью. Выполняя любое из этих действий, не забывайте, что код имел меньше прав, поскольку он поступил не из источника, которому полностью доверяют, поэтому, прежде чем вы переместите код на локальную машину или измените политику безопасности, вы дложны быть уверены, что данный код не выполняет никаких вредных действий.

Как администрировать политику безопасности на компьютере? В предприятии?

.NET Framework включает утилиту конфигурации .NET Framework Configuration, модуль управления для консоли MMC (mscorcfg.msc), чтобы конфигурировать определенные элементы политики безопасности. Модуль управления для консоли MMC не только поддерживает администрирование политики безопасности на локальной машине, но и создает пакеты, совместимые с System Management Server и групповой политикой безопасности (Group Policy). Утилита командной строки, CASPol.exe, может также быть использована для управления политикой безопасности на машине. Чтобы запустить любую из этих утилит, перейдите в директорию установки .NET Framework (находится в %windir%Microsoft.NetFrameworkv1.0.2914.16) и наберите mscorcfg.msc или caspol.exe.

Как evidence-based политика безопасности работает с политикой безопасности Windows 2000 ?

Evidence-based политика безопасности (которая авторизует код) работает вместе с политикой безопасности Windows 2000 (которая основана на индентификаторе, под которым осуществлен вход). Например, чтобы получить доступ к файлу, управляемый код должен иметь оба права - и право доступа кода к файлу и должен быть запущен под пользователем, который имеет права на файл на уровне NTFS. Управляемые библиотеки, включенные в состав .NET Framework также предоставляют классам безопасность, основанную на ролях. Это позволяет приложению работать с авторизацией Windows и пользовательскими группами.