Сокрытие важных данных
Просто хочу спросить, что было бы лучшим способом скрыть конфиденциальные данные (учетные записи ftp, строки подключения к базе данных и т. д.) в настольных приложениях.Net... любые предложения, пожалуйста..:)
я знал о том, что нужно помещать данные в приложение, и помнил, что если приложение будет деобфусцировано или декомпилировано, скрытые данные будут выставлены.
я пытался использовать настройки приложения
Properties.Settings.Default.MyConnectionString = theConString;
но все же данные можно увидеть при декомпиляции.
любые предложения, пожалуйста.
1 ответ
Решение
Вы можете зашифровать все или часть файла app.config. Это особенно распространено для защиты строк подключения к базе данных.
Вот подробная статья о том, как это сделать. Вкратце, вот код оттуда для шифрования раздела строки подключения в app.config:
static void ToggleConfigEncryption(string exeConfigName)
{
// Takes the executable file name without the
// .config extension.
try
{
// Open the configuration file and retrieve
// the connectionStrings section.
Configuration config = ConfigurationManager.
OpenExeConfiguration(exeConfigName);
ConnectionStringsSection section =
config.GetSection("connectionStrings")
as ConnectionStringsSection;
if (section.SectionInformation.IsProtected)
{
// Remove encryption.
section.SectionInformation.UnprotectSection();
}
else
{
// Encrypt the section.
section.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider");
}
// Save the current configuration.
config.Save();
Console.WriteLine("Protected={0}",
section.SectionInformation.IsProtected);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}