Написание безопасных библиотек классов

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

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

Элемент безопасности

Описание

Требование безопасности

Требования применяются на уровне классов и методов как механизм обеспечения наличия у вызывающих код объектов необходимых разрешений. Требования инициируют проверку стека, при которой все вызывающие объекты, напрямую или опосредованно вызывающие код, проверяются в стеке при вызове кода. Требования обычно используются в библиотеках классов для защиты ресурсов.

Переопределения безопасности

Переопределения применяются к ограниченной области действия классов и методов для обхода определенных решений по обеспечению безопасности, принимаемых средой выполнения. Они вызываются, когда вызывающие объекты используют ваш код. Они применяются для прекращения проверки стека и ограничения доступа вызывающих объектов, которым уже были выданы определенные разрешения.

ПримечаниеПримечание
Изменения системы безопасности в .NET Framework 4 сделали некоторые переопределения устаревшими.Дополнительные сведения об этих изменениях см. в разделе Изменения системы безопасности в платформе .NET Framework 4.
Предупреждающее замечаниеВнимание
Переопределения могут быть небезопасны, и при их использовании следует соблюдать осторожность.

Оптимизация безопасности

Прозрачность, представленная в .NET Framework 4, обеспечивает новые способы оптимизации управления доступом для кода. Дополнительные сведения см. в разделе Прозрачный для системы безопасности код.

См. также

Основные понятия

Требования безопасности

Переопределение результатов проверки безопасности

Декларативная безопасность в области классов и членов

Оптимизация безопасности

Управление доступом для кода