在WPF应用程序中保护sqllite数据库

时间:2018-02-02 05:17:38

标签: c# wpf sqlite security

您好我有一个使用C#.net开发的wpf应用程序,使用的框架是4.5。

我能够使用EF6实现创建,检索和删除与sql lite相关的操作,并且还能够通过密码来保护sqlite db的连接。

我的问题是我想要保护db文件,我经历了很多链接并且用Google搜索了近3天并遇到了各种选项,但很少有商业版和开放版都在C上,没有.net。

所以接下来的方法是为一般用户隐藏文件,因为我不希望他们删除文件,因为文件被删除然后其中的所有信息都将丢失。 我愿意理解,那里有保护sqlite数据库文件的最佳实践(请注意数据库是用Key保护的。)

我尝试了下面的事情

  • 将文件存储在Appdata文件夹中,但它易于访问 删除文件,也有人可以采取数据库文件并尝试 强暴地知道密码,这可能不值得:)
  • 将文件存储在程序数据文件夹中,但是如果已安装使用 Windows应用程序不是管理员,它可能会抛出异常。
  • 我遇到了IsolatedStorage,它似乎对普通用户隐藏了, 我们也可以定义sotrage的范围,但问题是我不是 能够为.sqlite实现if,因为我不知道确切的路径, 并初始化sqlite连接,我们需要确切的路径。

什么是保护文件的最佳方法。我不希望用户使用其他应用程序进行读取,更新或删除,但只能通过我的应用程序访问。

1 个答案:

答案 0 :(得分:0)

(只评论这篇文章) Sqlite数据库通常可以从其他用户读取和写入(不是来自你的应用程序)。对于打开,删除,复制sqlite数据库的问题,我认为你可以通过锁定文件来锁定db文件(有很多类型的锁定文件谷歌上的结构。所以,如果你想从你的数据库中读取数据,你用你指定的密钥解锁db文件并打开连接。之后,你可以锁定db文件。