Я не специалист по веб-приложениям, но я единственный на своей работе, кто высказывал какие-либо возражения по поводу предоставления полных разрешений (анонимной) учетной записи INETUSER для целей запуска веб-приложения ASP.NET в IIS. Это чтение, запись, выполнение, специальные разрешения и т. Д. Для веб-приложения, которое читает (соединение с базой данных доступно только для чтения) из базы данных SQL. Я думаю, что это может быть не самый разумный выбор для обеспечения безопасности сервера.
Поскольку я сказал: «Эй, это может быть ужасная идея», меня попросили провести оценку рисков. Как я уже сказал, я в основном ничего не знаю ни об ASP.NET, ни о веб-приложениях в целом, но, не зная подробных деталей настройки, можете ли вы, ребята, сказать мне, какие проблемы мне здесь следует рассматривать?
Я немного боюсь дать анонимной учетной записи интернет-пользователя ПОЛНЫЕ разрешения для каталога wwwroot \.
Спасибо за любую помощь; Я просто ищу дорогостоящие проблемы, которые очевидны тем, кто более образован, чем я.
Любые идеи?
Предположительно, вы даете учетной записи INETUSER доступ на запись, потому что у вас есть какой-то механизм для записи / загрузки в wwwroot. Угроза, которую я вижу, заключается в возможности загрузки пользователем произвольного кода (новые aspx, .dlls) на сервер, который предоставит им возможность делать что угодно.
Статья Защита содержимого в IIS с помощью списков ACL файловой системы может быть вам интересно. Вы должны выделить Avoid full control, and use more granular read/write permissions.
Вы также можете сослаться Рекомендации по обеспечению безопасности IIS 6.0 (IIS 6.0) и Безопасность в IIS 6.0.
Если вам абсолютно необходимо предоставить права на запись пользователю IIS (например, для каталога "uploads"), убедитесь, что это каталог вне корня веб-сервера. Это поможет снизить риск, поскольку гарантирует, что все, что выгружено, не сможет впоследствии обслуживаться IIS.
т.е. если у вас должен быть каталог загрузок, поместите его сюда:
c:\inetpub\uploads
не здесь
c:\inetpub\wwwroot
в противном случае то, что сказал foson.
Вы также можете не предоставлять разрешения на выполнение, просто напишите / измените.