Подтвердить что ты не робот

Как я могу скрыть свой пароль в моей строке С# Connection?

У меня есть следующая строка подключения:

Data Source=Paul-HP\MYDB;Initial Catalog=MyMSDBSQL;Persist Security Info=True;User ID=sa;Password=password

(.NET webservice) Это, очевидно, можно просмотреть, просто открыв файл app.config и посмотрев настройки конфигурации.

Мне нужно, чтобы хакер не смог увидеть пароль. Но в то же время оставьте его настраиваемым, чтобы его можно было изменить при развертывании в другой базе данных.

4b9b3361

Ответ 1

У вас есть несколько вариантов - те, о которых я знаю (в порядке предпочтения):

Так, например, строка подключения может выглядеть так:

Data Source=Paul-HP\MYDB;Initial Catalog=MyMSDBSQL;Persist Security Info=True;User ID={0};Password={1}

Я бы выбрал вариант 1, если это невозможно, то вариант 2. Я уже упомянул вариант 3.

Вы читали Защиту информации о подключении (ADO.NET)?

Ответ 2

Прежде всего, не используйте учетную запись "SA". Он оставляет вашу базу данных открытой, если кто-то получает пароль. Используйте специальную учетную запись, которая разрешена только для выполнения операций CRUD в конкретной базе данных.

Единственный способ получить web.config - взломать ваш сервер. И если они это сделали, вы все равно ввернуты.

Ответ 4

Вы можете зашифровать строку соединения, а затем, когда вы получите доступ к строке подключения, расшифруйте ее. Это не является доказательством дурака, хотя, поскольку вы застряли в проблеме того, где хранить ключ, чтобы расшифровать строку соединения!

Ответ 5

Я предлагаю en/decrypting строку подключения. Поэтому строка подключения должна быть установлена ​​вручную.

Для шифрования взгляните на: http://dotnet-snippets.de/dns/encrypt-and-decrypt-strings-SID205.aspx

Для пользовательских настроек взгляните на: http://msdn.microsoft.com/en-us/library/8eyb2ct1.aspx

Замените зашифрованный верным во время выполнения:

  public static void SetAppSettingValue(string Key, string Value)
   {

   System.Configuration.Configuration config == ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Add an Application Setting.

 config.AppSettings.Settings[Key].Value = Value;

  // Save the changes in App.config file.

   config.Save(ConfigurationSaveMode.Modified);

    ConfigurationManager.RefreshSection("appSettings");
  }