【发布时间】:2011-03-08 07:32:59
【问题描述】:
我一直在查看所有这三个数据库库,我想知道它们是否会采取任何措施来防止 SQL 注入。我很可能会在其中一个之上构建一个库,而注入是我选择一个库时最关心的问题。有人知道吗?
【问题讨论】:
标签: c++ database sql-injection soci otl
我一直在查看所有这三个数据库库,我想知道它们是否会采取任何措施来防止 SQL 注入。我很可能会在其中一个之上构建一个库,而注入是我选择一个库时最关心的问题。有人知道吗?
【问题讨论】:
标签: c++ database sql-injection soci otl
一般来说,这个级别的库应该按照您的指示去做。您最能防止 SQL 注入的方法是查看用户提供的字符串,并且仅在对它们进行清理后才将它们传递给库。
【讨论】:
与 OTL 库的作者联系。用“OTL 方言”编写的参数化查询,正如我所说的,将作为参数化查询传递给底层 DB API。因此,参数化查询将与底层 API 一样具有注入安全性。
转到 this 其他 SO 帖子以获取他的完整电子邮件解释: Is C++ OTL SQL database library using parameterized queries under the hood, or string concat?
编辑:SOCI 使用soci::use 表达式,它转换为通常的绑定机制,但具有更多语法糖。示例:db_session << "insert into table(column) values(:value_placeholder)", use(user_input,"value_placeholder");
就 DTL 而言,我不确定它如何处理与底层 API 相关的参数。
【讨论】: