Я только что дал интервью в Редмонде, где мне задавали тонну вопросов безопасности, связанных с asp.net. Один из вопросов, которые они задавали, касался настройки приложения защищенной интрасети для использования ограниченного делегирования для доступа к SQL Server. В этом случае учетной записи пользователя AD делегирован доступ к SQL Server. Цель, конечно же, состоит в том, чтобы: а) нигде не хранить имя пользователя / пароль на веб-сервере (web.config) и б) предоставить абстрактную модель безопасности, которой можно управлять в Active Directory.
Это заставило меня задуматься о том, как я все эти годы настраивал свои сайты для анонимного доступа. Обычно я запускаю свои веб-сайты IIS с использованием анонимной учетной записи по умолчанию и сохраняю строку подключения в файле web.config (в зашифрованном виде, а иногда и в виде открытого текста). Это, конечно, требует, чтобы ваш SQL Server работал в смешанном режиме. Итак, мой вопрос: что если мы вообще не сохранили строку подключения в web.config, а просто создали уникальную учетную запись анонимного домена для конкретного веб-сайта, который имел бы доступ db_datareader в SQL Server? Есть ли какая-то причина, почему это было бы плохой идеей?
Я пытался придумать все сценарии, в которых это было бы плохой идеей, и единственное, что я могу придумать, это когда «хакер» скомпрометировал код на веб-сервере, а затем каким-то образом получил доступ к вашему SQL Сервер ... но это может произойти в любом сценарии.
Кто-нибудь знает лучшую практику здесь?