ASP.NET/IIS7 - защита доступа к SQL Server для нескольких пользовательских ролей - PullRequest
0 голосов
/ 16 августа 2010

Я работаю над веб-приложением, использующим ASP.NET 4.0, C # и IIS7.Веб-приложение представляет собой систему управления контентом, которая определяет несколько пользовательских ролей, таких как редактор и администратор.Этими пользователями и ролями управляет структура членства asp.net, а связанные таблицы базы данных интегрируются в базу данных веб-приложения с помощью aspnet_regsql.Наконец, веб-приложение работает под ApplicationPoolIdentity.Таким образом, веб-приложение работает под виртуальной учетной записью «IIS AppPool \», которую оно не разделяет ни с каким другим приложением.

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

Вопрос в том, не будет ли небезопасно просто предоставлять доступ на чтение и запись в базе данных SQL Server дляIIS AppPool \ виртуальная учетная запись и предоставление функциональности различным ролям пользователей в базовой бизнес-логике для веб-приложения?

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

Если (и только если) это создает непредвиденный риск для безопасности, было бы лучше использовать олицетворение, хранить несколько строк подключения в Интернете.config файл с аутентификацией SQL или отслеживание пользовательских привилегий в самой базе данных?

1 Ответ

2 голосов
/ 16 августа 2010

Вопрос: будет ли это небезопасно? просто дать доступ для чтения и записи в базы данных MSSQL для IIS AppPool \ виртуальный аккаунт и дать функциональность для различных пользовательских ролей в основная бизнес-логика для Интернета приложение?

Вот как это обычно делается, и для большинства бизнес-случаев этого достаточно. В каждом приложении есть ненадежность, поэтому вы должны сделать все возможное, чтобы избежать переполнения буфера, внедрения скриптов и SQL-запросов, очистки входных данных и т. Д.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...