Назад | Перейти на главную страницу

Хостинг общих сайтов asp.net с полным доверием, ограничивая их доступ к реестру и файловой системе

Я планирую разместить несколько приложений asp.net, требующих полного доверия. Сайты будут находиться под разными доменными именами, и я являюсь администратором сервера. Они будут размещены в Windows 2008 R2 (IIS 7.5). Я не хочу, чтобы у пользователей была возможность доступа к реестру, журналу событий, папкам вне папок своего сайта и так далее.

Что нужно сделать, чтобы «изолировать» эти сайты, чтобы они работали с полным доверием, но не могли причинить никакого вреда серверу, даже если владелец сайта попытался бы это сделать?

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

  1. Когда вы создаете пул приложений для сайта, установите для идентификатора рабочего процесса (Дополнительные настройки -> Модель процесса) значение ApplicationIdentity.

  2. Создайте свой веб-сайт и укажите его выделенный пул приложений.

  3. Перейдите к представлению функций сайта и откройте апплет аутентификации. Убедитесь, что анонимная проверка подлинности включена, затем выберите и отредактируйте это свойство (или щелкните правой кнопкой мыши «Анонимная проверка подлинности»). Изменить Анонимный идентификатор пользователя на «Идентификатор пула приложений».

  4. В проводнике перейдите к веб-папкам сайта и откройте вкладку «Безопасность» для свойств папки. Добавьте идентификатор пула приложений, указав 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 - изоляция пула приложений