Что такое частично доверенная сборка / приложение / код / ​​и т. Д. В .NET?

Может кто-нибудь объяснить, пожалуйста? Я ничего не мог найти в интернете, все говорит о том, как это сделать, но ничто не говорит точно, что это такое.

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

У меня есть сертификационный экзамен MS, и это единственная тема, которую я просто не понимаю.

РЕДАКТИРОВАТЬ: Спасибо, ребята. Теперь у меня есть лучшее понимание безопасности в .NET. Я смог сдать сертификационный экзамен.

Ответы на вопрос(3)

Решение Вопроса

A сборка с полным доверием имеет неограниченный наборкод доступа к безопасности разрешения, которые позволяют коду получать доступ ко всем типам ресурсов и выполнять привилегированные операции, при условии соблюдения только безопасности операционной системы. Например, если пользователь Bob не может получить доступ к файлу Y, то ни одна сборка с полным доверием не может выполняться в пространстве пользователя Bob.

A частичное доверительное собрание означает, что код работает с полным доверием. .NET Framework имеет несколько предопределенныхуровни доверия что вы можете использовать напрямую или настроить в соответствии с вашими конкретными требованиями безопасности. Например, вы можете запретить сборке доступ к базам данных SQL, запретив SQLClientPermission.

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

 zneak08 февр. 2019 г., 01:09
Ссылка уровня доверия мертва.

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

Управляемый код должен предоставитьдоказательства его происхождения; Существуют различные способы сделать это (например, код подписан определенным ключом, код был загружен с определенного URL, код находится в определенной директории на диске и т. д.). На основании этих данных собрания объединяются в группы, для которых применяются политики. Политика может предоставлять определенные разрешения группе кода, в первую очередь, для доступа к системным ресурсам (выполнение поиска DNS, открытие сетевых подключений, доступ к «изолированному хранилищу», доступ к локальной файловой системе (всем ее или только выбранным каталогам), доступ к реестр, доступ к сетевым ресурсам и т. д.). В панели управления есть инструмент, позволяющий определять такие политики.

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

В особом случае можно назначить сборку «Полное доверие», предоставив все разрешения. Хотя раньше я не слышал термин «частичное доверие», я бы предположил, что он относится к собраниям, у которых есть некоторые права, но не к «Полному доверию».

Пожалуйста, поймите, что это просто обзор - о безопасности доступа к коду можно сказать гораздо больше.

 RoadWarrior17 дек. 2008 г., 22:33
Обратите внимание, что даже сборка FullTrust все еще ограничена безопасностью ОС. Например, если пользователь Bob не может получить доступ к файлу Y, то ни одна сборка с полным доверием не будет выполняться в пространстве пользователя Bob.

Может быть, какой-то контекст поможет.

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

.net имеет возможность обеспечить такое различие между локальным приложением и удаленным. Вы можете написать приложение, которое будет работать на локальном компьютере и сможет делать что угодно с локальным компьютером. И это приложение может иметь функцию загрузки расширений DLL из Интернета. Эти расширения смогут делать расчеты и манипулировать дисплеем. Но код внутри них хочет иметь возможность удалять файлы. Потому что это не доверяют.

Детали неверны, но это идея (насколько я понимаю).

Ваш ответ на вопрос