Сегодня я развертывал сайт, и мне показалось, что мне нужно предоставить разрешения на чтение / запись для каталогов сайта для системной учетной записи «сетевой сервис». Означает ли это, что любой другой сайт, работающий на этом веб-хосте (который также предположительно работает как сетевая служба), также может получить доступ к этим файлам?
Я попытался назначить разрешения для предварительно созданных учетных записей, созданных в соответствии с моим доменным именем. Однако этого, похоже, недостаточно для запуска сайта. Я получаю сообщения об отказе в доступе, если не предоставлю разрешение «сетевой службе».
нота Оказывается, это была ошибка, мне не нужно предоставлять разрешения сетевой службе для работы моего сайта.
нота Компания веб-хостинга использует IIS в Windows.
Если веб-приложения на сервере работают со средним доверием, они должен запретить чтение / запись файлов вне корня приложения, даже с разрешениями на файлы, как вы заметили. Однако без этого; да, любое приложение, работающее в контексте сетевой службы, будет иметь возможность читать и записывать файлы в вашем веб-каталоге.
Однако хорошо общий веб-хост должен иметь такие сайты по умолчанию. Имейте в виду, что даже без необходимости устанавливать разрешения на запись, если все веб-приложения на общем сервере имеют более чем средний уровень доверия, они смогут читать все файлы на вашем веб-сайте, включая ваш web.config, любые файлы исходного кода, все содержимое вашего каталога App_Data и т. д. Среднее доверие должно предотвратить даже такое чтение через границы веб-приложения.
Предполагая, что это ASP.NET на IIS
Создайте выделенный пул приложений для своего сайта, а затем настройте этот пул приложений для запуска в качестве предварительно созданных учетных записей, которые вы создали, что должно устранить зависимость от сетевой службы, требующей чтения / записи.
Руководство о том, как это сделать: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/f05a7c2b-36b0-4b6e-ac7c-662700081f25.mspx?mfr=true