使用文件名的 SQLite 数据库安全性


SQLite Database Security Using File Name

我正在制作一个分布式PHP应用程序,并计划使用Sqlite来存储数据。数据库将位于公共可访问目录中。

保护此数据库不被公众了解的最佳方法是什么?我正在考虑使用模糊的文件名。效果如何?

你能包含一个.htaccess文件吗?这可用于设置每个文件的访问限制,但仅适用于使用Apache和兼容Web服务器的用户,不适用于使用nginx的用户。

只要你能可靠地防止人们获取目录列表,并且你可以将数据库放在每个安装的不同、不可预测的位置,我认为它可能非常安全。

这很丑陋,但我会想象创建一个具有安全随机名称的目录,在其中放置一个 .htaccess 和空索引.html将另一个随机命名的目录放入其中并将数据库放入第二个目录将非常有效。只要您只有一个子目录,您(但不是攻击者(就可以列出该目录,找到该子目录并访问数据库。只要确保你没有通过错误消息泄漏数据库路径......

我不同意这是默默无闻的安全的说法。只要位置不可预测,了解和理解代码就不会让攻击者获得访问权限。

我只是在谷歌搜索类似问题时发现了这一点。

保持SQLite数据安全的方法很简单。在插入数据之前使用 PHP 加密数据,并在查询数据库时对其进行解密。不要担心隐藏文件,只是使其对非预期用户无法使用。