2010-06-22 3 views
10

Я слышал много о уровнях доверия, если бы люди пытались объяснить это мне, но я все еще не могу дать сценарий, в котором я бы применял один уровень доверия над другим.Может ли кто-то объяснить уровни доверия ASP.NET для меня?

Я прочитал MSDN's article, но для меня это мало чем помогло.

Может ли кто-нибудь представить пример реального мира, когда вы захотите использовать различные уровни (Полный, Высокий, Средний, Низкий и Минимальный) и объясните, какой риск безопасности я буду подвергать самому себе, если бы я был использовать неправильный?

ответ

2

This article может объяснить это намного лучше, чем технический, который вы читали.

Вот лучшая часть его:

Medium Trust Резюме

Основные ограничения, помещенные на средних доверия веб-приложений являются:

  • OleDbPermission не доступен. Это означает, что вы не можете использовать управляемые ADO.NET данные OLE DB для доступа к базам данных. Тем не менее, вы можете использовать управляемый поставщик SQL Server для доступа к базам данных SQL Server .

  • EventLogPermission не доступен. Это означает, что вы не можете получить доступ к журналу событий Windows.

  • ReflectionPermission не доступен. Это означает, что вы не можете использовать отражение .

  • RegistryPermission не доступен. Это означает, что вы не можете получить доступ к реестру .

  • WebPermission ограничен. Это означает, что ваше приложение может только связаться с адресом или диапазоном адресов, которые вы определяете в элементе .

  • FileIOPermission ограничен. Это означает, что вы можете обращаться к файлам в виртуальной директории вашего приложения . Приложению предоставляется чтение, запись, добавление и Разрешения PathDiscovery для вашего виртуального каталога приложения .

  • Вам также запрещено звонить неуправляемым кодом или с использованием Услуги предприятия.

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

1

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

У нас есть полный доступ к нашей машине, где мы размещаем сайт, и мы полностью доверяем ему, это не проблема для нас, поскольку он посвящен нашему веб-сайту, а не совместному ресурсу.

0

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

Я лично видел, как Crystal Reports и инструмент преобразования HTML в PDF выходят из строя под средним доверием - FileIOPermission требуется для папки Temp за пределами вашего виртуального каталога приложений. Я также видел проблемы с подключением TCP Socket, заблокированными из-за определенных уровней доверия.

У меня на самом деле была довольно неприятная ситуация с веб-приложением в прошлом году, когда для обеспечения безопасности требовался средний траст, но так писал в журнале событий!

К счастью, вы можете перезаписать уровни доверия в вашем файле machine.config на сервере (если у вас есть к нему доступ) или ваш web.config, если ваш сервер настроен так, чтобы он мог перезаписать файл machine.config.

Выполнение такого рода поражений цели фиксированных уровней доверия, хотя ...