SQL 2005サーバーに接続するc#アプリケーション(asp Webページではない)を作成しました。私のソースコードでは、このsql-serverのパスワードとユーザーIDはConnectionStringにプレーンテキストでコード化されています。
SqlConnection con = new SqlConnection();
con.ConnectionString =
"Data Source=server1;"+
"Initial Catalog=mydatabase;"+
"Integrated Security=no;"+
"User ID=admin;Password=mypassword;";
con.Open();
パスワードまたは接続文字列全体を暗号化する簡単な方法はありますか?私のツールを逆アセンブルする他の人はパスワードを見ることができませんか?
ありがとう
接続文字列を構成ファイルに保存し、そのセクションを暗号化する必要があります。 http://www.4guysfromrolla.com/articles/021506-1.aspx または http://msdn.Microsoft.com/en-us/library/89211k9b%28VS)を参照してください。 80%29.aspx 。
それを行うには2つの方法があります。
1)Configuration Secure Sectionを使用して、ソースコードから接続ストリームを暗号化および復号化できます。
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);
}
2)Enterprise Library Data Access Application Blockを使用して、RSAProtectedConfigurationProviderまたはDPAPIProtectedConfigurationProviderを使用して暗号化を実行できます。
完全な記事については、-> http://msdn.Microsoft.com/en-us/library/89211k9b(VS.80).aspx にアクセスしてください。
いいえ、あなたはそれを難しくすることしかできません
必要なテーブル/手順にのみアクセスできる特別なデータベースログインをアプリケーションに使用させることをお勧めします。