Книга: C# для профессионалов. Том II

Вопросы безопасности

Вопросы безопасности

В настоящее время код может приходить из разных источников. В Java, до появления Java 2, существовала установка, что все приложения, которым разрешается использовать все свойства языка, должны быть абсолютно надежными. Последующий опыт показал, что такой подход может быть достаточно опасным. Java теперь предоставляет службы политики безопасности с помощью файла java.policy. Приложения подвергаются той же проверке безопасности, что и апплеты. Политика безопасности может редактироваться напрямую или через policytool для создания приложений, в которых есть ограничения. Среда .NET для решения этой проблемы использует систему безопасности доступа к коду, которая контролирует доступ к защищенным ресурсам и операциям. Ниже представлен список наиболее важных функций системы безопасности доступа к коду:

? Код может требовать, чтобы вызывающая сторона имела специальные полномочия.

? Выполнение кода ограничено временем выполнения, в этом случае проводятся проверки, которые определяют, соответствуют ли предоставленные полномочия вызывающей стороны требуемым полномочиям операций.

? Код может запрашивать полномочия, которые ему требуются для выполнения и полномочия, которые будут полезны, а также явно утверждать, какие полномочия он никогда не должен иметь.

? Определяются полномочия, которые представляют определенные права для доступа к различным системным ресурсам.

? Администраторы могут выбирать политику системы безопасности, которая присваивает определенные полномочия определенным группам кода.

? Система безопасности доступа к коду предоставляет полномочия, когда компонент загружается. Это предоставление основывается на запросе кода, а также на операциях, разрешенных системой безопасности.

Обеспечение политики безопасности делает надежной среду управляемого кода .NET. Это объясняется тем, что каждая загружаемая сборка подчиняется политике безопасности, которая предоставляет полномочия для кода на основе доверия, где доверие базируется на признаках данного кода. Система безопасности .NET позволяет коду использовать защищенные ресурсы, только если он имеет на это "полномочие". Код запрашивает полномочия, которые ему требуются, а политика безопасности, применяемая .NET, определяет, какие полномочия будут реально предоставлены коду. Среда .NET предоставляет в C# классы полномочий доступа к коду, каждый из которых инкапсулирует возможность доступа к определенному ресурсу. Связанный с каждым полномочием класс является перечислением флагов полномочий, используемых для определения конкретного флага полномочий доступа к объекту. Эти полномочия используются для указания .NET, что надо разрешить коду делать и что должно быть разрешено вызывающей этот код стороне. Политика использует эти объекты также для определения, какие полномочия дать коду. Далее следует список стандартных полномочий:

EnvironmentPermission: определяет полномочия доступа для переменных окружения. Существуют два возможных типа доступа — только для чтения и только для записи. Доступ для записи предоставляет также полномочия для создания и удаления переменных окружения.

FileIOPermission: существуют три возможных типа полномочий ввода/вывода для файлов — чтение, запись и добавление. Чтение и запись самоочевидны, добавление ограничивается только добавлением, что читать остальное не разрешается.

ReflectionPermission: управляет возможностью чтения информации о типе неоткрытых членов типа, а также использованием Reflection.Emit.

RegistryPermission: управляет чтением, записью и созданием в реестре.

SecurityPermission: управляет совокупностью флагов полномочий, используемых системой безопасности.

UIPermission: управляет доступом к различным аспектам интерфейса пользователя.

FileDialogPermission: управляет доступом к файлам на основе диалогового окна системного файла.

IsolatedStoragePermission: управляет доступом к изолированной памяти.

В C# существуют два способа изменения текущих полномочий безопасности с помощью использования: вызовов для классов полномочий в средах .NET или атрибутов полномочий безопасности.

Оглавление книги

Оглавление статьи/книги

Генерация: 0.700. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз