我有一个启动器应用,可让用户选择他们想要快速打开的exe
个文件。为此,他们从文件浏览器中选择文件,并将exe路径存储在配置文件中。这有安全问题吗?我担心的是,某些恶意软件可能会更改配置文件以将exe文件更改为恶意可执行文件,然后应用程序将启动它。这是一个可行的威胁,还是如果恶意软件可以重写文件,它不需要代理应用程序来启动另一个文件?我可以加密文件,但我不介意用户通过文本编辑器手动更改设置。
答案 0 :(得分:2)
您可以在配置文件中存储已启动的exe文件的哈希值,并告知用户哈希值是否在执行之间发生变化。
计算文件的哈希值:
public static string ComputeHash(string fileName)
{
using(FileStream st = File.OpenRead(fileName))
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider());
byte[] hash = sha1.ComputeHash(st);
return BitConverter.ToString(hash).Replace("-", "");
}
}
答案 1 :(得分:1)
您猜对了:如果恶意软件可以更改磁盘上文件的内容,那么您已经遇到了麻烦,因为它不是更改配置文件,而是可以将exe替换为其他版本或格式化磁盘。