Я планирую разместить несколько приложений asp.net, требующих полного доверия. Сайты будут находиться под разными доменными именами, и я являюсь администратором сервера. Они будут размещены в Windows 2008 R2 (IIS 7.5). Я не хочу, чтобы у пользователей была возможность доступа к реестру, журналу событий, папкам вне папок своего сайта и так далее.
Что нужно сделать, чтобы «изолировать» эти сайты, чтобы они работали с полным доверием, но не могли причинить никакого вреда серверу, даже если владелец сайта попытался бы это сделать?
Если вы планируете иметь отдельный пул приложений для каждого сайта, то заблокировать его с помощью Удостоверения пула приложений.
Когда вы создаете пул приложений для сайта, установите для идентификатора рабочего процесса (Дополнительные настройки -> Модель процесса) значение ApplicationIdentity
.
Создайте свой веб-сайт и укажите его выделенный пул приложений.
Перейдите к представлению функций сайта и откройте апплет аутентификации. Убедитесь, что анонимная проверка подлинности включена, затем выберите и отредактируйте это свойство (или щелкните правой кнопкой мыши «Анонимная проверка подлинности»). Изменить Анонимный идентификатор пользователя на «Идентификатор пула приложений».
В проводнике перейдите к веб-папкам сайта и откройте вкладку «Безопасность» для свойств папки. Добавьте идентификатор пула приложений, указав IIS AppPool\[ApplicationPoolName]
например IIS AppPool\BobsBlogSite
. Установите разрешения, которые вы хотите предоставить сайту, например, чтение / запись / выполнение и т. Д.
Следует обратить внимание на то, что где бы вы ни находили папки каждого сайта, например C:\Websites
где ты мог бы иметь C:\Websites\site1
, C:\Websites\site2
и т. д., не забудьте разорвать любое наследование ACL, чтобы случайно не пропустить доступ через членство в группах, например Users
или IIS_IUSRS
если они были добавлены в C:\
.
Обычно мы удаляем все права на C:\Websites
папка за исключением SYSTEM
и Administrators
.
Для дальнейшего чтения см. Следующие статьи:
Удостоверения пула приложений (IIS.NET)
Новое в IIS 7 - изоляция пула приложений