我正在使用 Spring.Net 和 Windows 表单开发应用程序。我想防止用户更改 Spring 配置文件,例如将配置文件设置为只读。我阅读了 Spring.Net 文档,但一无所获,我查看了 Visual Studio 方面,但没有找到如何将文件设置为只读。我发现的唯一一件事是加密 app.config 文件,它可以工作,但不会阻止用户更改。你有什么主意吗?
问问题
36 次
1 回答
1
真正阻止改变将很难甚至是不可能的......
但通常它应该足以能够识别它是否已被更改......要实现这一点,您基本上需要实现以下方案的一些变体:
- 创建文件的哈希(连同盐)
- 将该值存储在您的 app.config 中
- 在您的应用程序中读取文件并重新计算该哈希(使用相同的哈希)
- 如果该值与您的 app.config 中的值匹配,则一切正常,否则已更改,您需要采取适当的措施
进一步采取上述步骤:
您可以将文件的副本作为“嵌入式资源”嵌入到您的应用程序 (EXE/DLL) 中,并在启动时将磁盘上的文件替换为该资源的内容 - 这样您就可以确保该文件始终是您的应用程序预计。
免责声明:上述方案不会阻止真正确定的“攻击者/黑客......”。
于 2013-04-29T20:37:13.313 回答