Строки соединения в app.config.Как насчет безопасности? - PullRequest
2 голосов
/ 08 июля 2010

Действительно ли полезно помещать строки подключения с паролями в файл app.config?

Мне кажется, что app.config никак не зашифрован и информация о пароле может быть легко прочитана.

У меня есть приложение, которое обращается к базе данных, для которой конечный пользователь не имеет аутентификации. Групповой пользователь / пароль используется. Приложение запускается только в том случае, если текущий пользователь Windows находится в группе Active Directory. Поэтому, находясь в приложении, пользователь может подключаться к БД с помощью группы пользователей.

Как правильно обрабатывать такие строки подключения? Скрыть их в исходном коде?

ПРИМЕЧАНИЕ это для автономного приложения - не ASP, IIS и т. Д.

Это сработало для меня

(спасибо Джону Гэллоуэю - http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx)

private void EncryptConfigSection()
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    ConfigurationSection section = config.AppSettings;
    if (section != null)
    {
        if (!section.SectionInformation.IsProtected)
        {
            if (!section.ElementInformation.IsLocked)
            {
                section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
                section.SectionInformation.ForceSave = true;
                config.Save(ConfigurationSaveMode.Full);
            }
        }
    }
}

Это работает путем шифрования файла конфигурации exe при первом запуске приложения. Я не нашел способа сделать это как часть процесса установки, поэтому файл конфигурации полностью читается, пока приложение не будет запущено в первый раз. Возможно, у кого-то есть идея ...

Ответы [ 3 ]

7 голосов
/ 08 июля 2010

Вы можете зашифровать части файла app.config или web.config, см. , например, этот пост для получения дополнительной информации.

В частности, эта статья MSDN исследует различные способы защиты соединительных цепочек.

3 голосов
/ 08 июля 2010

Вы должны использовать Интегрированную аутентификацию, и после аутентификации пользователя AppPool в SQL только с тем, что ему нужно выполнить.

, при этом вам не нужно указывать пароль в конфигурации и подключениииспользует пользователя пула приложений для аутентификации на сервере sql.

, поэтому у вас самый высокий уровень безопасности.

0 голосов
/ 08 июля 2010

Кроме того, какую версию IIS вы используете? Это общий хостинг? Или у вас есть доступ администратора к IIS? Если это так, проверьте настройки IIS ASP.NET в IIS Manager. Вы можете указать ConnectionStrings.

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