我正在研究.NET Windows应用程序,该应用程序将使用Process.Start启动在同一台PC上运行的另一个内部开发的.NET应用程序。我需要将数据库连接信息(包括用户标识和密码)传递给目标应用程序。我试图确定在发送之前是否需要加密信息。我应该将敏感数据传递给.NET中的Process.Start调用吗?
假设最终用户的PC没有受到威胁,如果我在参数中传递未加密的连接信息,连接信息是否会暴露在任何地方?
将这样的事情是OK ...
string myExecutable = "myApp.exe";
string server = "myServer";
string database = "top_secret_data";
string userID = "myUser";
string password = "ABC123";
string dbInfo = string.Format("server={0} database={1} userID={2} password={3}", server, database, userID, password);
ProcessStartInfo startInfo = new ProcessStartInfo(myExecutable, dbInfo);
Process.Start(startInfo);
或者我应该使用这样的事情...
var crypto = new MySymmetricCryptoLib.Crypto();
string myExecutable = "myApp.exe";
string server = crypto.Encrypt("myServer");
string database = crypto.Encrypt("top_secret_data");
string userID = crypto.Encrypt("myUser");
string password = crypto.Encrypt("ABC123");
string dbInfo = string.Format("server={0} database={1} userID={2} password={3}", server, database, userID, password);
ProcessStartInfo startInfo = new ProcessStartInfo(myExecutable, dbInfo);
Process.Start(startInfo);
好点。为了澄清,我没有具体的“从谁”。我只是想估计未加密数据传递的一般风险,并且看看数据可能暴露在什么类型的情况下。 – 2009-06-16 14:31:14