SQLITE数据库文件能否用于攻击

问题描述 投票:0回答:1

我正在实现一个 Web 服务客户端,该服务提供多种下载选项 - CSV、JSON、Parquet 和 SQLITE“.db”。响应数据集具有少量表格数据集 - SQLITE 非常适合 - 它消除了将单个表格数据集上传到数据库以进行高效连接查询的需要。

我关心如何防止来自服务的不良数据。

  1. 从技术上来说,是否有可能将病毒嵌入到SQLITE数据库中?我相信 CSV、JSON 和 parquet 只能承载数据(并且具有知道如何处理缓冲区溢出、空值等的解析器)。 SQLITE 数据库要复杂得多。是否可以携带“可执行”指令。我的目的是打开文件 RO,并仅从 python 客户端执行“select”语句。

  2. 是否有工具可以扫描 SQLITE 数据库以查找潜在的错误数据、不正确的数据页等 - 任何可用于攻击/感染读者的内容?

  3. 数据集大小相对较小 - 大约 2MB - 在传入的 SQLITE 数据库上使用“转储”和“加载”是否安全 - 作为安全预防措施 - 可能验证生成转储仅具有“批准的”SQL 命令 -创建表、插入、创建索引...只需 10 秒 - 付出的代价很小,让您高枕无忧。

如有任何建议,我们将不胜感激。 SQLITE 站点安全页面讨论了其中一些问题 (https://www.sqlite.org/security.html),寻求从业者的反馈。

sqlite sql-injection code-injection virus-scanning
1个回答
0
投票

SQLite 数据库与 CSV 文件、Parquet 或任何简单文件一样安全。理论上,其中任何一个都可以在 BLOB 列中存储任意字节字符串,因此这可能包含病毒,也可能是合法数据或只是错误的数据。或者它可能是一个分裂成碎片并存储在多个 BLOB 中的病毒,或者其他什么。

没有数据库或数据格式是“安全的”。这取决于读取数据并可能对数据执行某些操作(例如执行数据)的客户端应用程序。

所以你的问题的答案是:

  1. 是的,病毒可以完整存储在 SQLite 数据库中,也可以以某种方式隐藏起来。

  2. 我不知道有什么工具可以扫描 SQLite 数据库的内容,并且根据他们的指南,不鼓励在 Stack Overflow 上寻求工具推荐。即使有这样的工具,我也不认为它是可靠的,因为正如我所提到的,构成病毒的字节可以被分割、编码,或者以某种方式避免检测。如果您的客户端应用程序可能被欺骗重新形成病毒然后执行它,那么数据存储将无法阻止这种情况。

  3. 转储和加载不会使包含恶意内容的数据变得“安全”。它不像《星际迷航》中的传送光束那样可以神奇地去除病原体。转储和加载的目的是保留原始数据库中存储的逻辑值,因此如果该值是一组可能是病毒代码的字节,那么在转储和加载后它仍然是病毒代码。

© www.soinside.com 2019 - 2024. All rights reserved.