防止在SQLite中从外部来源修改数据

防止在SQLite中从外部来源修改数据,第1张

概述防止在SQLite中从外部来源修改数据

我最近在OOP的大学项目中创build了一个使用Java的密码pipe理器。 为了处理数据库,我select了sqlite,因为使用MysqL或sql服务器对于一个小项目来说是忙碌的。 虽然我已经完成了这个提交,但是我想我是否可以在这个项目上做进一步的改进。

我观察到的最大的缺点是,如果有人能够在系统中find数据库的位置(这太容易了),打开数据库将会非常简单。

现在这里出现了两个问题 –

用户的密码列表将可见

任何人都可以使用sqlitepipe理器修改数据。

为了解决第一个问题,我已经使用AESencryption,它工作得很好。 但是,第二个问题依然存在。

java.net.MalformedURLException:本地主机名称unkNown:java.net.UnkNownHostException:

如何从unix连接到oracle数据库

启动MongoDB后出现“sync_file_range Function not implemented”错误

飞路3.1迁移校验和不匹配。 校验和的计算取决于平台

Crystal报表显示数据库login要求?

所以在坚果shell, 我怎样才能防止我的sqlite数据库被修改,除了从密码pipe理器本身?

要指出的是,我的应用程序只是在家用电脑上使用的离线密码pipe理器。 所以,你可以相应地考虑威胁的程度。 此外,密码pipe理器本身必须修改数据库内容,因此分配权限应该不会阻止应用程序这样做。

注:我想知道是否可以使用sqlite的限制,一次只能build立一个连接来写入数据。 使用这个入侵者将无法修改它。 但是,我不确定如何实施。

快速,二进制数据库替代

DBCP连接池loginTimeout

使用gnuplot来绘制sqlite数据库

重复整个MysqL数据库

Postgresqlgraphics化安装程序:指定的服务不作为已安装的服务存在

限制用户访问

只有 *** 作系统可以保护文件不被未经授权的人访问。 将数据库放入只能由当前用户访问的文件夹中,并为每个用户分别设置一个数据库。

加密

你已经在加密密码了,这很好。 如果你想加密整个数据库,你可以看看sqlite Encryption Extension 。

sqlite加密扩展(SEE)是sqlite的公共域版本的一个附加组件,允许应用程序读取和写入加密的数据库文件。

也看看sqlite加密/密码保护的问题 。

攻击

如果有人可以访问数据库文件,会发生什么?

如果数据库安全正确,攻击者无法获得普通密码(至少在合理的时间内)。 在最糟糕的情况下,密码会被另一个密码所取代,但是除了使用错误的密码并且可能会重置密码之外,这将不会有任何效果。 因此,最糟糕的情况是您将失去保存的密码。

您无法阻止单台计算机上的数据丢失。 例如硬盘有时会停止工作,有人可能会窃取整个电脑,格式化硬盘等。

备份

如果您确实要确保数据未被修改,则需要在不同的计算机上进行备份,以最大限度地减少有人访问所有计算机的可能性。 例如,您可以将数据库文件上传到云服务。 然后你签名文件,这样你就可以看到一个文件是否妥协,如果这样可以退回到另一个版本。

结论

您的密码管理器足够用于离线工具。 如果要提高数据完整性,则必须将数据传输到其他计算机。

总结

以上是内存溢出为你收集整理的防止在SQLite中从外部来源修改数据全部内容,希望文章能够帮你解决防止在SQLite中从外部来源修改数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1156416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存